diff frontend/doc/api.txt @ 30:50708627f3c7

Ukończona strona klienta
author mild@mild-laptop
date Sun, 05 Jun 2011 23:10:18 +0200
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/frontend/doc/api.txt	Sun Jun 05 23:10:18 2011 +0200
@@ -0,0 +1,92 @@
+Porady dla osób korzystających z API
+====================================
+
+Pobieranie informacji w formacie JSON
+-------------------------------------
+
+Pobieranie informacji o zadaniu o danym ID
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Przy domyślnej konfiguracji pobranie danych o zadaniu o podanym ID wymaga
+wykonania polecenia GET na elemencie pod adresem
+``/api/getjob/<ID>/``, gdzie ID jest identyfikatorem zadania
+
+Serwer aplikacji powinien zwrócić dokument w formacie JSON zawierający
+wszystkie dane znajdujące się w bazie, dotyczące tego zadania.
+
+Pobieranie informacji o wszystkich zadaniach
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+``/api/getjob/`` , gdzie *apikey* ma takie samo znaczenie jak
+powyżej.
+
+Pobieranie informacji w formacie zdefiniowanym przez szablon
+------------------------------------------------------------
+
+Klucz API
+^^^^^^^^^
+
+Klucz API, w URLach określany jako ``<apikey>``, jest kluczem pozwalającym na dostęp
+do informacji udostępnianych przez API i nie powinien być udostepniany nikomu poza
+osobami odpowiedzialnymi za aplikację rozproszoną korzystającą z serwera aplikacji.
+Klucz znajduje się w :ref:`config-ini`.
+
+Szablon pliku
+^^^^^^^^^^^^^
+
+Szablon pliku znajduje się w katalogu ``mfrontend/templates/joblist.csv`` i może być
+dowolnie dostosowywany według potrzeb serwera aplikacji.
+
+Domyślny szablon pliku:
+
+.. code-block:: jinja
+
+    {% for job in jobs %}
+    {{job.id}};{{job.hash}};{{job.method}};
+    {% endfor %}
+
+W razie potrzeby należy dodać kolejne pola w analogiczny sposób.
+
+Pobieranie jednego oczekującego zadania
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+``/api/getnextjob/<apikey>/`` pobiera następne oczekujące działanie (wg numeru ID,
+najpierw mniejsze wartości). *Ważne*: samo pobranie informacji **nie** zmienia
+statusu zadania, trzeba to zrobić ręcznie za pomocą edycji zadania.
+
+Pobieranie informacji o zadaniu o danym ID
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Przy domyślnej konfiguracji pobranie danych o zadaniu o podanym ID wymaga
+wykonania polecenia GET na elemencie pod adresem
+``/api/getjob/<apikey>/<jobid>/``, gdzie ID jest identyfikatorem zadania
+
+Serwer aplikacji powinien zwrócić dokument w formacie zdefiniowanym przez szablon
+zawierający wszystkie dane znajdujące się w bazie dotyczące tego zadania.
+
+
+Modyfikowanie danych zadania
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Należy wykonać *POST* na URI ``/api/modify/<apikey/<jobid>/``, gdzie:
+
+apikey
+    Klucz API z pliku config.ini
+ID
+    Identyfikator zadania
+
+Natomiast jako dane POST należy przesłać nowe wartości, które chcemy wpisać do
+bazy, przykładowo następująca linia poleceń programu CURL:
+
+.. code-block:: bash
+
+    $ curl --data "state=10&percent=40" localhost:5000/api/modify/apikey/1/
+
+spowoduje ustawienie wartości ``state`` na 10 i ``percent`` na 40 przy zadaniu
+o identyfikatorze ``1``.
+
+Funkcje wykorzystywane w API
+----------------------------
+
+.. automodule:: mfrontend.views.api
+    :members: