Back to top

CBAPI

API pro práci s objekty v mapovém prostředí. Veškeré dotazy jsou možné pouze z povolených IP adres.

Resource Group

Tour

Práce s objekty výletů.

API pracuje výhradně se strukturami ve tvaru JSON řetězce a za použití UTF-8 kódování.

Pokud žádaná operace proběhne úspěšně, je vrácen HTTP kód 200. Pokud operace neproběhne úspěšně, je vrácen odpovídající kód. Ve všech případech je vrácen též platný JSON řetezec. Pokud tělo odpovědi neobsahuje platný JSON řetězec, došlo k neočekávané situaci a výsledek by neměl být použit. O takové situaci nás, prosím, informujte.

Obrázky objektů je možné získávat pomocí odkazu složeného jako: https://stceapp.phonemaps.eu/content/img/cached/tour/{Image} kde {Image} je název souboru včetně relativní cesty, jak jej vrací API. Tedy napr.: https://stceapp.phonemaps.eu/content/img/cached/tour/12/34/72443-1592291234.jpg (jde o ukázkové url, daný odkaz žádný obrázek obsahovat nemusí). API vrací názvy obrázků vždy včetně relativní cesty, tj. např.: 12/34/72443-1592291234.jpg

Get All
GET/api/tours

Získání základních údajů o všech objektech.

Popis výstupních dat (každý objekt v poli items obsahuje):

  • idTour - id objektu [int]

  • visible - má být objekt zobrazován? [0/1]

  • hideInLanguages - má být objekt v nekterém jazyce zkryt? [0/1 array]

  • latitude - zeměpisná šířka [double]

  • longitude - zeměpisná délka [double]

  • lastUpdate - datum a čast poslední změny objektu [Y-m-d H:i:s]

Example URI

GET https://stceapp.phonemaps.eu/api/tours
Request
HideShow
Headers
Content-Type: application/json
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "items":[
    {
      "idTour":32,
      "lastUpdate":"1000-01-01 00:00:00",
      "visible":1,
      "hideInLanguages":{"1":0,"6":0,"7":0,"9":0},
      "latitude":50.435828279497,
      "longitude":14.641290362924
    },
    {
      "idTour":28,
      ...
    },
    ...
  ]
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "errorMessage": "Access denied.",
  "errorCode": 15
}

Get Detail
GET/api/tours/{idTour}

Získání všech údajů o vybraném objektu.

Popis výstupních dat viz vložení objektu a získání základních údajů. Při získání detailu se oproti vkládání a získání základních údajů pracuje navíc s:

  • images - pole obrázků k objektu. každý záznam obsahuje název souboru a textové popisy v poli, kde klíčem je id jazyka dle číselníku jazyků

Example URI

GET https://stceapp.phonemaps.eu/api/tours/idTour
URI Parameters
HideShow
idTour
number (required) 

id objektu

Request
HideShow
Headers
Content-Type: application/json
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "item":{
    "idTour":32,
    "lastUpdate":"1000-01-01 00:00:00",
    "visible":1,
    "hideInLanguages":{"1":0,"6":0,"7":0,"9":0},
    "latitude":50.435828279497,
    "longitude":14.641290362924,
    "path":[
      {"x":14.641290362924,"y":50.435828279497},
      {"x":14.64134,"y":50.435883},
      {"x":14.640964,"y":50.436024},
      ...
      {"x":14.541833,"y":50.381817},
      {"x":14.541807,"y":50.381832}
    ],
    "activityType":2,
    "difficulty":2,
    "length":18,
    "ascendingMeters":353,
    "descendingMeters":494,
    "time":5.5,
    "title":{
      "1":"Koko\u0159\u00edn",
      "6":"Koko\u0159\u00edn",
      "7":"Koko\u0159\u00edn",
      "9":"Koko\u0159\u00edn"
    },
    "difficultyText":{
      "1":"st\u0159edn\u011b n\u00e1ro\u010dn\u00e1 trasa vedouc\u00ed ter\u00e9nem po zna\u010den\u00fdch cest\u00e1ch",
      "6":"mittel, Strecke f\u00fchrt \u00fcber markierte Wege durch das Gel\u00e4nde",
      "7":"A moderately demanding trail through the countryside along marked paths.",
      "9":"\u015brednio trudna prowadz\u0105ca przez teren po oznakowanych szlakach"
    },
    "start":{
      "1":"M\u0161eno, \u017eelezni\u010dn\u00ed stanice",
      "6":"M\u0161eno, Bahnstation",
      "7":"M\u0161eno, railway station",
      "9":"M\u0161eno, stacja kolejowa"
    },
    "finish":{
      "1":"Lhotka u M\u011bln\u00edka, \u017eelezni\u010dn\u00ed stanice",
      "6":"Lhotka u M\u011bln\u00edka, Bahnstation",
      "7":"Lhotka u M\u011bln\u00edka, railway station",
      "9":"Lhotka u M\u011bln\u00edka, stacja kolejowa"
    },
    "transitPoints":{
      "1":"M\u0161eno \u2013 Pokli\u010dky-rozc. 1\u00a0\u00bd hod., Pokli\u010dky-rozc. \u2013 hrad Koko\u0159\u00edn 1 \u00bd hod., hrad Koko\u0159\u00edn \u2013 Harasov 1 hod., Harasov \u2013 Lhotka u M\u011bln\u00edka 1 \u00bd hod., celkov\u00fd \u010das 5 \u00bd hod.",
      "6":"M\u0161eno \u2013 Pokli\u010dky-Weggabelung 1\u00a0\u00bd, Pokli\u010dky-Weggabelung \u2013 Burg Koko\u0159\u00edn 1 \u00bd, Burg Koko\u0159\u00edn \u2013 Harasov 1, Harasov \u2013 Lhotka u M\u011bln\u00edka 1 \u00bd, Gesamtzeit 5 \u00bd",
      "7":"M\u0161eno \u2013 Pokli\u010dky-crossing 1\u00a0\u00bd hours, Pokli\u010dky-crossing \u2013 Koko\u0159\u00edn Castle 1 \u00bd hours, Koko\u0159\u00edn Castle \u2013 Harasov 1 hour, Harasov \u2013 Lhotka u M\u011bln\u00edka 1 \u00bd hours, total time 5 \u00bd hours",
      "9":"M\u0161eno \u2013 Pokli\u010dky-rozc. 1 \u00bd godz., Pokli\u010dky-rozc. \u2013 hrad Koko\u0159\u00edn 1 \u00bd godz., hrad Koko\u0159\u00edn \u2013 Harasov 1 godz., Harasov \u2013 Lhotka u M\u011bln\u00edka 1 \u00bd godz., czas trwania og\u00f3\u0142em 5 \u00bd godz."
    },
    "refreshment":{
      "1":"M\u0161eno, Koko\u0159\u00edn-dolina, U Grobiana",
      "6":"M\u0161eno, Koko\u0159\u00edn-dolina, U Grobiana",
      "7":"M\u0161eno, Koko\u0159\u00edn-dolina, U Grobiana",
      "9":"M\u0161eno, Koko\u0159\u00edn-dolina, U Grobiana"
    },
    "description":{
      "1":"Na p\u00edskovcov\u00e9 sk\u00e1le nad malebn\u00fdm \u00fadol\u00edm \u0159\u00ed\u010dky P\u0161ovky se ... a rybn\u00edky.",
      "6":"Auf einem Sandsteinfelsen erhebt sich die majest\u00e4tische Burg \u00fcber dem malerischen Flusstal der P\u0161ovka. ... H\u00f6hlen und Teiche.",
      "7":"Koko\u0159\u00edn, a majestic castle ... ponds along the way.",
      "9":"<b>Na skale piaskowcowej nad malownicz\u0105 dolin\u0105  rzeki P\u0161ovka wznosi ... skaliste, jaskinie i stawy."
    },
    "weather":{
      "updated":"2020-06-17 11:23:01",
      "idweather":803,
      "rain":0,
      "temperature":22,
      "windspeed":2,
      "winddirection":90
    },
    "images":[
      {
        "file":"54\/31\/59675-1592985431.jpg",
        "title":{
          "1":"Koko\u0159\u00edn. \u00a9 Bukvoed \u2013 CC BY 4.0",
          "6":"Koko\u0159\u00edn. \u00a9 Bukvoed \u2013 CC BY 4.0",
          "7":"Koko\u0159\u00edn. \u00a9 Bukvoed \u2013 CC BY 4.0",
          "9":"Koko\u0159\u00edn. \u00a9 Bukvoed \u2013 CC BY 4.0"
        }
      },
      {
        "file":"92\/90\/42124-1592989290.jpg",
        "title":{
          "1":"Pokli\u010dky. \u00a9 public domain",
          "6":"Pokli\u010dky. \u00a9 public domain",
          "7":"Pokli\u010dky. \u00a9 public domain",
          "9":"Pokli\u010dky. \u00a9 public domain"
        }
      },
      {
        "file":"93\/83\/67985-1592989383.jpg",
        "title":{
          "1":"N\u00e1ckova rokle. \u00a9 \u0160J\u016f \u2013 CC-BY-SA-3.0",
          "6":"N\u00e1ckova rokle. \u00a9 \u0160J\u016f \u2013 CC-BY-SA-3.0",
          "7":"N\u00e1ckova rokle. \u00a9 \u0160J\u016f \u2013 CC-BY-SA-3.0",
          "9":"N\u00e1ckova rokle. \u00a9 \u0160J\u016f \u2013 CC-BY-SA-3.0"
        }
      },
      {
        "file":"94\/70\/99630-1592989470.jpg",
        "title":{
          "1":"Harasov. N\u00e1ckova rokle. \u00a9 Atillak \u2013 CC BY-SA 3.0",
          "6":"Harasov. N\u00e1ckova rokle. \u00a9 Atillak \u2013 CC BY-SA 3.0",
          "7":"Harasov. N\u00e1ckova rokle. \u00a9 Atillak \u2013 CC BY-SA 3.0",
          "9":"Harasov. N\u00e1ckova rokle. \u00a9 Atillak \u2013 CC BY-SA 3.0"
        }
      }
    ],
  }
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "errorMessage": "Access denied.",
  "errorCode": 15
}
Response  404
HideShow
Headers
Content-Type: application/json

Insert Tour
POST/api/tours

Vložení nového objektu.

Popis vstupních dat (pouze označené údaje jsou povinné):

  • visible - viditelnost objektu [0/1]

  • latitude (povinné) - zeměpisná šířka [double]

  • longitude (povinné) - zeměpisná délka [double]

  • title (povinné) - asociativní jazykové pole názvů objektu, klíčem je id jazyka dle číselníku jazyků [string[255] array]

  • hideInLanguages - asociativní jazykové pole pro možnost zkrytí objektu v dané jazykové verzi , klíčem je id jazyka dle číselník jazyků [0/1 array]

  • difficultyText - asociativní jazykové pole s popisem obtížnosti, klíčem je id jazyka dle číselníku jazyků [string[100] array]

  • start - asociativní jazykové pole s názvem startu, klíčem je id jazyka dle číselníku jazyků [string[100] array]

  • finish - asociativní jazykové pole s názvem cíle, klíčem je id jazyka dle číselníku jazyků [string[100] array]

  • transitPoints - asociativní jazykové pole s průjezdními místy, klíčem je id jazyka dle číselníku jazyků [string[255] array]

  • refreshment - asociativní jazykové pole s popisem občerstvení, klíčem je id jazyka dle číselníku jazyků [string[255] array]

  • description - asociativní jazykové pole s popisem objektu, klíčem je id jazyka dle číselníku jazyků. v popisu je možné využít vybrané HTML tagy: p/em/s/strong/b. ostatní tagy jsou zakázány [string[10000] array]

  • activityType - typ aktivity výletu dle číselníku aktivit [int]

  • difficulty - obtížnost celočíselně 1 až 3 [int]

  • length - délka v km [float]

  • ascendingMeters - metry nastoupané na trase [int]

  • descendingMeters - metry naklesané na trase [int]

  • time - průměrný čas trasy v hodinách [float]

Pokud vložení proběhne v pořádku, je vráceno id nového objektu.

Example URI

POST https://stceapp.phonemaps.eu/api/tours
Request
HideShow
Headers
Content-Type: application/json
Body
{
  "visible": 1,
  "latitude": 50.06,
  "longitude": 14.445,
  "path": [
    {
      "x": 14.445,
      "y": 50.06
    },
    {
      "x": 14.545,
      "y": 50.16
    },
    {
      "x": 14.645,
      "y": 50.26
    }
  ],
  "title": {
    "1": "title CZ",
    "6": "title DE",
    "7": "title EN",
    "9": "title PL"
  },
  "hideInLanguages": {
    "1": 0,
    "6": 0,
    "7": 0,
    "9": 1
  },
  "difficultyText": {
    "1": "ambitiousness CZ",
    "6": "ambitiousness DE",
    "7": "ambitiousness EN",
    "9": "ambitiousness PL"
  },
  "start": {
    "1": "start CZ",
    "6": "start DE",
    "7": "start EN",
    "9": "start PL"
  },
  "finish": {
    "1": "finish CZ",
    "6": "finish DE",
    "7": "finish EN",
    "9": "finish PL"
  },
  "transitPoints": {
    "1": "transitPoints CZ",
    "6": "transitPoints DE",
    "7": "transitPoints EN",
    "9": "transitPoints PL"
  },
  "refreshment": {
    "1": "refreshment CZ",
    "6": "refreshment DE",
    "7": "refreshment EN",
    "9": "refreshment PL"
  },
  "description": {
    "1": "description CZ",
    "6": "description DE",
    "7": "description EN",
    "9": "description PL"
  },
  "activityType": 2,
  "difficulty": 3,
  "length": 123.5,
  "ascendingMeters": 123,
  "descendingMeters": 321,
  "time": 1.5
}
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "result": {
    "idTour": 12
  }
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "errorMessage": "Access denied.",
  "errorCode": 15
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "errorMessage": "Invalid input data. Problem with following: latitude",
  "errorCode": 5
}

Update Tour
PUT/api/tours/{idTour}

Aktualizace existujícího objektu.

Popis vstupních dat (pouze označené údaje jsou povinné):

  • visible - viditelnost objektu [0/1]

  • latitude - zeměpisná šířka [double]

  • longitude - zeměpisná délka [double]

  • title - asociativní jazykové pole názvů objektu, klíčem je id jazyka dle číselníku jazyků [string[255] array]

  • hideInLanguages - asociativní jazykové pole pro možnost zkrytí objektu v dané jazykové verzi , klíčem je id jazyka dle číselník jazyků [0/1 array]

  • difficultyText - asociativní jazykové pole s popisem obtížnosti, klíčem je id jazyka dle číselníku jazyků [string[100] array]

  • start - asociativní jazykové pole s názvem startu, klíčem je id jazyka dle číselníku jazyků [string[100] array]

  • finish - asociativní jazykové pole s názvem cíle, klíčem je id jazyka dle číselníku jazyků [string[100] array]

  • transitPoints - asociativní jazykové pole s průjezdními místy, klíčem je id jazyka dle číselníku jazyků [string[255] array]

  • refreshment - asociativní jazykové pole s popisem občerstvení, klíčem je id jazyka dle číselníku jazyků [string[255] array]

  • description - asociativní jazykové pole s popisem objektu, klíčem je id jazyka dle číselníku jazyků. v popisu je možné využít vybrané HTML tagy: p/em/s/strong/b. ostatní tagy jsou zakázány [string[10000] array]

  • activityType - typ aktivity výletu dle číselníku aktivit [int]

  • difficulty - obtížnost celočíselně 1 až 3 [int]

  • length - délka v km [float]

  • ascendingMeters - metry nastoupané na trase [int]

  • descendingMeters - metry naklesané na trase [int]

  • time - průměrný čas trasy v hodinách [float]

Pokud úprava proběhne v pořádku, je vráceno id upraveného objektu.

Example URI

PUT https://stceapp.phonemaps.eu/api/tours/idTour
URI Parameters
HideShow
idTour
number (required) 

id objektu

Request
HideShow
Headers
Content-Type: application/json
Body
{
  "visible": 0,
  "latitude": 50.206,
  "longitude": 14.2445,
  "path": [
    {
      "x": 14.2445,
      "y": 50.206
    },
    {
      "x": 14.2545,
      "y": 50.216
    },
    {
      "x": 14.2645,
      "y": 50.226
    }
  ],
  "title": {
    "1": "title2 CZ",
    "6": "title2 DE",
    "7": "title2 EN",
    "9": "title2 PL"
  },
  "hideInLanguages": {
    "1": 1,
    "6": 1,
    "7": 1,
    "9": 0
  },
  "difficultyText": {
    "1": "ambitiousness2 CZ",
    "6": "ambitiousness2 DE",
    "7": "ambitiousness2 EN",
    "9": "ambitiousness2 PL"
  },
  "start": {
    "1": "start2 CZ",
    "6": "start2 DE",
    "7": "start2 EN",
    "9": "start2 PL"
  },
  "finish": {
    "1": "finish2 CZ",
    "6": "finish2 DE",
    "7": "finish2 EN",
    "9": "finish2 PL"
  },
  "transitPoints": {
    "1": "transitPoints2 CZ",
    "6": "transitPoints2 DE",
    "7": "transitPoints2 EN",
    "9": "transitPoints2 PL"
  },
  "refreshment": {
    "1": "refreshment2 CZ",
    "6": "refreshment2 DE",
    "7": "refreshment2 EN",
    "9": "refreshment2 PL"
  },
  "description": {
    "1": "description2 CZ",
    "6": "description2 DE",
    "7": "description2 EN",
    "9": "description2 PL"
  },
  "activityType": 3,
  "difficulty": 2,
  "length": 2123.5,
  "ascendingMeters": 2123,
  "descendingMeters": 2321,
  "time": 2.5
}
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "result": {
    "idTour": 12
  }
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "errorMessage": "Access denied.",
  "errorCode": 15
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "errorMessage": "Invalid input data. Problem with following: latitude",
  "errorCode": 5
}
Response  404
HideShow
Headers
Content-Type: application/json

Delete Tour
DELETE/api/tours/{idTour}

Smazání existujícího objektu.

Pokud smazání proběhne v pořádku, je vráceno id již neexistujícího objektu. Obrázky k danému objektu jsou odstraněny též a v závislosti na stavu cache již nemusí být na serveru dostupné.

Example URI

DELETE https://stceapp.phonemaps.eu/api/tours/idTour
URI Parameters
HideShow
idTour
number (required) 

id objektu

Request
HideShow
Headers
Content-Type: application/json
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "result": {
    "idTour": 12
  }
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "errorMessage": "Access denied.",
  "errorCode": 15
}
Response  404
HideShow
Headers
Content-Type: application/json

Insert / Update Image
POST/api/tours/image/{idTour}

Vložení nového obrázku nebo přepsání existujícího obrázku u existujícího objektu.

Minimální šířka obrázku: 600px. Minimální výška obrázku: 350px. Obrázky menší než tyto rozměry mohou způsobit potíže při zobrazení.

Maximální rozměry obrázku by neměly překročit 1920 x 1080. Větší obrázky mohou způsobovat přílišnou zátěž při zpracování a zhoršovat odezvu.

Objekt je nutné určit parametrem idTour. V těle požadavku je pak nutné předat další údaje:

  • image - base64 kódovaný obrázek ve formátu JPEG. Maximální velikost obrázku 2MB

  • title - asociativní jazykové pole názvů fotografie, klíčem je id jazyka dle číselníku jazyků [string array]

  • ? fileToUpdate - název souboru obrázku k přepsání

Atribut fileToUpdate je nepovinný a používá se pouze v situaci, kdy je cílem přepsat již existující obrázek. Pokud je cílem vložit obrázek nový, atribut do těla požadavku neumísťujte.

Pokud vložení / přepsání proběhne v pořádku, je vráceno jméno souboru uloženého obrázku.

Example URI

POST https://stceapp.phonemaps.eu/api/tours/image/idTour
URI Parameters
HideShow
idTour
number (required) 

id objektu

Request  to insert
HideShow
Headers
Content-Type: application/json
Body
{
  "image": "TG9yZW0gaXBz ... HDFmWk=",
  "title": {
    "1": "title CZ",
    "6": "title DE",
    "7": "title EN",
    "9": "title PL"
  }
}
Request  to update
HideShow
Headers
Content-Type: application/json
Body
{
  "image": "TG9yZW0gaXBz ... HDFmWk=",
  "title": {
    "1": "title CZ",
    "6": "title DE",
    "7": "title EN",
    "9": "title PL"
  },
  "fileToUpdate": "12/34/72443-1592291234.jpg"
}
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "result": {
    "file": "12/34/72443-1592291234.jpg"
  }
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "errorMessage": "Access denied.",
  "errorCode": 15
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "errorMessage": "Invalid input data. Problem with following: fileToUpdate",
  "errorCode": 5
}
Response  404
HideShow
Headers
Content-Type: application/json

Delete Image
DELETE/api/tours/image/{idTour}

Smazání obrázku u existujícího objektu.

Objekt je nutné určit parametrem idTour a jeho obrázek ke smazání pak v těle požadavku názvem souboru včetne relativní cesty v atributu file.

Pokud smazání proběhne v pořádku, je vráceno jméno již neexistujícího souboru. Obrázek je odstraněn a v závislosti na stavu cache již nemusí být na serveru dostupný.

Example URI

DELETE https://stceapp.phonemaps.eu/api/tours/image/idTour
URI Parameters
HideShow
idTour
number (required) 

id objektu

Request
HideShow
Headers
Content-Type: application/json
Body
{
  "file": "12/34/72443-1592291234.jpg"
}
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "result": {
    "file": "12/34/72443-1592291234.jpg"
  }
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "errorMessage": "Access denied.",
  "errorCode": 15
}
Response  404
HideShow
Headers
Content-Type: application/json

Generated by aglio on 07 Dec 2020