Základní popis API portálu SENOSEC.CZU.CZ Základní URL pro API: https://senosec.czu.cz/api
Autentizace Pro autentizaci (přihlašování) je použit standardní protokol OAuth V1.0a (http://oauth.net/core/1.0a/) URL pro získání request tokenu: https://senosec.czu.cz/api/auth/request-token URL přihlašovací stránky: https://senosec.czu.cz/api/user/login URL pro získání access tokenu: https://senosec.czu.cz/api/auth/access-token Při autentizaci se nepoužívají žádné dodatečné parametry.
Práce s daty API využívá principu REST, tedy využívá metody protokolu HTTP následovně: • • • •
GET – čtení dat POST – vytvoření nové entity PUT – změna existující entity DELETE – odstranění entity
Data se obousměrně přenášejí ve formátu JSON.
Role uživatele GET https://senosec.czu.cz/api/profil/role Odpověď obsahuje seznam rolí uživatele ("dobrovolnik", "myslivec", "zemedelec"): [ "dobrovolnik", …
String
Název role
]
Druhy prevence GET https://senosec.czu.cz/api/prevence/vse Odpověď obsahuje seznam dostupných druhů prevence: [ { "id":1, "nazev":"Procházení…"
Object Integer String
Identifikátor prevence Název prevence
}, … ]
Typy nálezů GET https://senosec.czu.cz/api/typy-nalezu/vse Odpověď obsahuje seznam dostupných typů nálezu: [ { "id":1, "nazev":"Procházení…"
Object Integer String
}, … ]
Porosty Čtení záznamu o jednom porostu GET https://senosec.czu.cz/api/porosty/porost/
Kde (integer) je identifikátor zvoleného porostu.
Identifikátor typu nálezu Název typu nálezu
Odpověď obsahuje údaje o porostu: { "id":1, "lat":49.15348, "lng":13.12153, "nazev":"Pod lesem", "plodina":"Vojtěška", "vymera":3.2, "zacatek":"2015-03-21", "terminy_seceni": [ "2015-06-13T13:30+02:00", "2015-08-05T08:00+02:00", … ], "zajem_o_dobrovolniky":true, "navrhovana_prevence": { "id":1, "nazev":"Procházení…" }, "zadal": { "id":3, "jmeno":"Pavel", "prijmeni":"Junek" }
Integer Float Float String String Float String Array String
Identifikátor porostu Zeměpisná šířka Zeměpisná délka Název porostu (nepovinný) Plodina Výměra pozemku v hektarech Datum setí ve formátu ISO 8601 (nepovinné) Seznam termínů sečení (min. 1) Datum a čas sečení ve formátu ISO 8601
Boolean Object Integer String
Zájem o účast dobrovolníků na akcích Navrhovaná prevence Identifikátor prevence Název
Object Integer String String
Uživatel, který porost vytvořil Identifikátor uživatele Jméno uživatele Příjmení uživatele
}
Vytvoření nového porostu POST https://senosec.czu.cz/api/porosty/porost Tělo požadavku musí obsahovat údaje o novém porostu: { "lat":49.15348, "lng":13.12153, "nazev":"Pod lesem", "plodina":"Vojtěška", "vymera":3.2, "zacatek":"2015-03-21", "terminy_seceni": [ "2015-06-13T13:30+02:00", "2015-08-05T08:00+02:00", … ], "zajem_o_dobrovolniky":true, "navrhovana_prevence": { "id":1, }
Float Float String String Float String Array String
Zeměpisná šířka Zeměpisná délka Název porostu (nepovinný) Plodina Výměra pozemku v hektarech Datum setí ve formátu ISO 8601 (nepovinné) Seznam termínů sečení (min. 1) Datum a čas sečení ve formátu ISO 8601
Boolean Object Integer
Zájem o účast dobrovolníků na akcích Navrhovaná prevence Identifikátor prevence
} Odpověď obsahuje kompletní údaje o nově vytvořeném porostu (viz Čtení záznamu o jednom porostu).
Změna porostu PUT https://senosec.czu.cz/api/porosty/porost/ Kde (integer) je identifikátor porostu, který má být změněn. Tělo požadavku musí obsahovat údaje o porostu: { "nazev":"Pod lesem", "plodina":"Vojtěška", "vymera":3.2, "zacatek":"2015-03-21", "terminy_seceni": [ "2015-06-13T13:30+02:00", "2015-08-05T08:00+02:00", … ], "zajem_o_dobrovolniky":true, "navrhovana_prevence": { "id":1, }
String String Float String Array String
Název porostu (nepovinný) Plodina Výměra pozemku v hektarech Datum setí ve formátu ISO 8601 (nepovinné) Seznam termínů sečení (min. 1) Datum a čas sečení ve formátu ISO 8601
Boolean Object Integer
Zájem o účast dobrovolníků na akcích Navrhovaná prevence Identifikátor prevence
} Odpověď obsahuje kompletní údaje o změněném porostu (viz Čtení záznamu o jednom porostu).
Odstranění porostu DELETE https://senosec.czu.cz/api/porosty/porost/ Kde (integer) je identifikátor porostu, který má být odstraněn.
Hledání všech porostů na zadaném území GET https://senosec.czu.cz/api/porosty/vse?min_lat=...&min_lng=...&max_lat=...&max_lng=... Kde parametry min_lat, min_lng, max_lat a max_lng jsou povinné a definují obdélníkovou oblast v mapě, ve které se hledají porosty. • • • •
min_lat (float) je minimální zeměpisná šířka min_lng (float) je minimální zeměpisná délka max_lat (float) je maximální zeměpisná šířka max_lng (float) je maximální zeměpisná délka
Odpověď obsahuje pole údajů o všech nalezených porostech (viz Čtení záznamu o jednom porostu).
Hledání porostů zadaných aktuálním uživatelem GET https://senosec.czu.cz/api/porosty/moje Odpověď obsahuje pole údajů o všech nalezených porostech (viz Čtení záznamu o jednom porostu).
Výskyty Čtení záznamu o jednom výskytu GET https://senosec.czu.cz/api/vyskyty/vyskyt/ Kde (integer) je identifikátor zvoleného výskytu. Odpověď obsahuje údaje o výskytu: { "id":1, "lat":49.15348, "lng":13.12153, "zivocich":"Srna", "datum_nalezu":"2015-06-13T13:30+02:00", "pocet_dospelych":0, "pocet_mladat":1, "vzdalenost_od_lesa":13.5, "typ_nalezu": { "id":1, "nazev":"Spatřeno živé" }, "zadan_myslivcem":true, "zajem_o_dobrovolniky":true, "navrhovana_prevence": { "id":1, "nazev":"Procházení…" }, "zajem_o_ucast":true, "zadal": { "id":3, "jmeno":"Pavel", "prijmeni":"Junek" }
Integer Float Float String String Integer Integer Float Object Integer String
Identifikátor výskytu Zeměpisná šířka Zeměpisná délka Nalezený živočich Datum a čas nálezu Počet nalezených dospělých kusů Počet nalezených mláďat Vzdálenost od okraje lesa v metrech Typ nálezu Identifikátor typu nálezu Název typu nálezu
Boolean Boolean Object Integer String
Zda výskyt zadal myslivec nebo dobrovolník i Zájem o účast dobrovolníků na akcích ii Navrhovaná prevence Identifikátor prevence Název
Boolean Object Integer String String
Zda se nálezce chce účastnit vyhánění Uživatel, který výskyt vytvořil Identifikátor uživatele Jméno uživatele Příjmení uživatele
iii
}
Vytvoření nového výskytu POST https://senosec.czu.cz/api/vyskyty/vyskyt Tělo požadavku musí obsahovat údaje o novém výskytu: { "lat":49.15348, "lng":13.12153, "zivocich":"Srna", "datum_nalezu":"2015-06-13T13:30+02:00", "pocet_dospelych":0, "pocet_mladat":1, "vzdalenost_od_lesa":13.5, "typ_nalezu": { "id":1, }, "zajem_o_dobrovolniky":true, "navrhovana_prevence": { "id":1, },
Float Float String String Integer Integer Float Object Integer
Zeměpisná šířka Zeměpisná délka Nalezený živočich Datum a čas nálezu Počet nalezených dospělých kusů Počet nalezených mláďat Vzdálenost od okraje lesa v metrech Typ nálezu Identifikátor typu nálezu
Boolean Object Integer
Zájem o účast dobrovolníků na akcích v Navrhovaná prevence Identifikátor prevence
iv
"zajem_o_ucast":true,
Boolean
Zda se nálezce chce účastnit vyhánění
vi
} Odpověď obsahuje kompletní údaje o zadaném výskytu (viz Čtení záznamu o jednom výskytu).
Změna výskytu PUT https://senosec.czu.cz/api/vyskyty/vyskyt/ Kde (integer) je identifikátor výskytu, který má být změněn. Tělo požadavku musí obsahovat údaje o výskytu: { "zivocich":"Srna", "datum_nalezu":"2015-06-13T13:30+02:00", "pocet_dospelych":0, "pocet_mladat":1, "vzdalenost_od_lesa":13.5, "typ_nalezu": { "id":1, }, "zajem_o_dobrovolniky":true, "navrhovana_prevence": { "id":1, }, "zajem_o_ucast":true,
String String Integer Integer Float Object Integer
Nalezený živočich Datum a čas nálezu Počet nalezených dospělých kusů Počet nalezených mláďat Vzdálenost od okraje lesa v metrech Typ nálezu Identifikátor typu nálezu
Boolean Object Integer
Zájem o účast dobrovolníků na akcích viii Navrhovaná prevence Identifikátor prevence
Boolean
Zda se nálezce chce účastnit vyhánění
vii
ix
} Odpověď obsahuje kompletní údaje o zadaném výskytu (viz Čtení záznamu o jednom výskytu).
Odstranění výskytu DELETE https://senosec.czu.cz/api/vyskyty/vyskyt/ Kde (integer) je identifikátor výskytu, který má být odstraněn.
Hledání všech výskytů na zadaném území GET https://senosec.czu.cz/api/vyskyty/vse?min_lat=...&min_lng=...&max_lat=...&max_lng=... Kde parametry min_lat, min_lng, max_lat a max_lng jsou povinné a definují obdélníkovou oblast v mapě, ve které se hledají výskyty. • • • •
min_lat (float) je minimální zeměpisná šířka min_lng (float) je minimální zeměpisná délka max_lat (float) je maximální zeměpisná šířka max_lng (float) je maximální zeměpisná délka
Odpověď obsahuje pole údajů o všech nalezených výskytech (viz Čtení záznamu o jednom výskytu).
Hledání výskytů zadaných aktuálním uživatelem GET https://senosec.czu.cz/api/vyskyty /moje Odpověď obsahuje pole údajů o všech nalezených výskytech (viz Čtení záznamu o jednom výskytu).
Akce Čtení záznamu o jedné akci GET https://senosec.czu.cz/api/akce/akce/ Kde (integer) je identifikátor zvolené akce. Každá akce je definována na nějakém porostu. Proto odpověď obsahuje údaje o porostu (viz Čtení záznamů o jednom porostu) rozšířený o údaje o akcích, které jsou pro porost naplánovány a které vyhovují kritériím dotazu:
{ "id":1, …
Integer
"akce":[ { "id":1, "zacatek":"2015-06-13T13:30+02:00", "popis":"Sejdeme se u křížku", "zajem_o_dobrovolniky":true, "prevence": { "id":1, "nazev":"Procházení…" }, "ucastnici":[ { "id":3, "jmeno":"Pavel", "prijmeni":"Junek" }, … ], "zadal": { "id":3, "jmeno":"Pavel", "prijmeni":"Junek" } }, … ]
Array Object Integer String String Boolean Object Integer String
Identifikátor porostu Ostatní údaje o porostu, viz Čtení záznamu o jednom porostu Pole akcí na porostu, které vyhovují dotazu Údaje o akci Identifikátor akce Datum a čas začátku akce Popis či pokyny pro akci Zájem o účast dobrovolníků Skutečně použitá prevence Identifikátor prevence Název
Array Object Integer String String
Seznam účastníků přihlášených na akci Uživatel přihlášený na akci Identifikátor uživatele Jméno uživatele Příjmení uživatele
Object Integer String String
Uživatel, který akci vytvořil Identifikátor uživatele Jméno uživatele Příjmení uživatele
}
Čtení všech akcí plánovaných na zadaném porostu GET https://senosec.czu.cz/api/akce/porost/ Kde (integer) je identifikátor zvoleného porostu
Odpověď je podobná, jako u čtení záznamu o jedné akci, s výjimkou toho, že pole akce může obsahovat více položek.
Vytvoření nové akce POST https://senosec.czu.cz/api/akce/porost/ Kde (integer) je identifikátor porostu, na kterém se má akce vytvořit. Tělo požadavku musí obsahovat údaje o nové akci: { "zacatek":"2015-06-13T13:30+02:00", "popis":"Sejdeme se u křížku", "zajem_o_dobrovolniky":true, "prevence": { "id":1, },
Object String String Boolean Object Integer
Údaje o akci Datum a čas začátku akce Popis či pokyny pro akci Zájem o účast dobrovolníků Skutečně použitá prevence Identifikátor prevence
} Odpověď obsahuje kompletní údaje o vytvořené akci (viz Čtení záznamu o jedné akci).
Změna akce PUT https://senosec.czu.cz/api/akce/akce/ Kde (integer) je identifikátor akce, která se má změnit. Tělo požadavku musí obsahovat údaje o akci: { "zacatek":"2015-06-13T13:30+02:00", "popis":"Sejdeme se u křížku", "zajem_o_dobrovolniky":true, "prevence": { "id":1, },
Object String String Boolean Object Integer
Údaje o akci Datum a čas začátku akce Popis či pokyny pro akci Zájem o účast dobrovolníků Skutečně použitá prevence Identifikátor prevence
} Odpověď obsahuje kompletní údaje o změněné akci (viz Čtení záznamu o jedné akci).
Odstranění akce DELETE https://senosec.czu.cz/api/akce/akce/?duvod= Kde (integer) je identifikátor akce, která má být odstraněna, a (string) je důvod odstranění akce.
Přihlášení uživatele na akci POST https://senosec.czu.cz/api/akce/ucast/ Kde (integer) je identifikátor akce, na kterou se chce uživatel přihlásit. Odpověď obsahuje kompletní údaje o změněné akci (viz Čtení záznamu o jedné akci).
Odhlášení uživatele z akce DELETE https://senosec.czu.cz/api/akce/ucast/ Kde (integer) je identifikátor akce, na kterou se chce uživatel přihlásit. Odpověď obsahuje kompletní údaje o změněné akci (viz Čtení záznamu o jedné akci).
Hledání všech akcí na zadaném území GET https://senosec.czu.cz/api/akce/vse?min_lat=...&min_lng=...&max_lat=...&max_lng=... Kde parametry min_lat, min_lng, max_lat a max_lng jsou povinné a definují obdélníkovou oblast v mapě, ve které se hledají akce. • • • •
min_lat (float) je minimální zeměpisná šířka min_lng (float) je minimální zeměpisná délka max_lat (float) je maximální zeměpisná šířka max_lng (float) je maximální zeměpisná délka
Odpověď obsahuje pole údajů o všech nalezených akcích (viz Čtení záznamu o jedné akci).
Hledání všech akcí zadaných aktuálním uživatelem GET https://senosec.czu.cz/api/akce/moje Odpověď obsahuje pole údajů o všech nalezených akcích (viz Čtení záznamu o jedné akci).
Hledání všech akcí, na které je aktuální uživatel přihlášen GET https://senosec.czu.cz/api/akce/ucast Odpověď obsahuje pole údajů o všech nalezených akcích (viz Čtení záznamu o jedné akci).
i
Pouze v případě zadání myslivcem Pouze v případě zadání myslivcem iii Pouze v případě zadání dobrovolníkem iv Pouze v případě zadání myslivcem v Pouze v případě zadání myslivcem vi Pouze v případě zadání dobrovolníkem vii Pouze v případě zadání myslivcem viii Pouze v případě zadání myslivcem ix Pouze v případě zadání dobrovolníkem ii