Prijelaz na adresu API-ja
Ranije integracije pozivaju API na glavnoj adresi Surse, onoj koju ljudi otvaraju u pregledniku, na primjer
https://app.sursa.com/v1/…. API sada ima i vlastitu adresu, https://api.sursa.com u oblaku ili
https://api.<your domain> u vašoj instalaciji. Namijenjena je integracijama: skalira se horizontalno iza
uravnoteživača opterećenja i ne poslužuje ništa osim API-ja.
Prijelaz nije obavezan. Glavna adresa i dalje poslužuje /v1 za postojeće integracije, bez datuma završetka i bez
preusmjeravanja. Prijeđite kad vam odgovara, kako biste dobili prednosti adrese API-ja, i koristite je za svaku novu
integraciju.
Što ostaje isto
- Putanje, parametri, polja, kodovi pogrešaka i događaji:
GET /v1/cardsisti je zahtjev na obje adrese. - API ključevi. Isti ključevi
kb_ikbsrc_rade na obje adrese, s istom ulogom, opsezima i podatkovnim profilom. - Ključevi idempotentnosti, ograničenja učestalosti i kvote. Zahtjevi na obje adrese ubrajaju se u iste kvote organizacije.
- Webhookovi. Isporuke, potpisi i tajne ne ovise o adresi koju pozivate.
- Poveznice u odgovorima.
doc_urlpogreške vodi na ovaj portal, a zaglavljeLinkstranice popisa vodi na adresu API-ja, koju god adresu pozivate.
Što je drukčije na adresi API-ja
| Na glavnoj adresi | Na adresi API-ja |
|---|---|
| Sve operacije web-aplikacije, uključujući interne | Samo operacije iz javne reference API-ja. Svaka druga putanja odgovara s 404 i kodom api.not_found. |
Ključ u X-API-Key ili Authorization ili kolačić sesije preglednika | Ključ ili OAuth pristupni token, po mogućnosti u Authorization: Bearer. Kolačići se zanemaruju. |
GET /auth/me | GET /v1/me. Putanje unutar /auth/ ne poslužuju se. |
| Način „View as” (prikaz iz perspektive drugog korisnika) putem kolačića | Zaglavlje X-View-As, za ključeve s ulogom admin. |
| Jedan poslužitelj ili nepromjenjiv skup | Više poslužitelja iza uravnoteživača opterećenja. |
Posljednji je redak važan samo u jednom slučaju: za odgovor koji POST /v1/chat šalje kao tok. Prekinuti tok nastavlja se od
Last-Event-ID samo na poslužitelju koji piše odgovor. Ako vaša integracija nastavlja tokove, svakom pitanju
dodijelite request_id, kako bi ponovni pokušaj na drugom poslužitelju dobio spremljeni odgovor umjesto drugog
odgovora. V. Nastavak prekinutog toka.
Prije prijelaza
Provjerite je li svaki poziv javan. Popišite putanje koje vaša integracija poziva i potražite svaku u referenci API-ja ili ih usporedite sa specifikacijom nove adrese:
curl -s https://api.sursa.com/openapi.json \
| jq -r '.paths | to_entries[] | .key as $p | .value | keys[] | ascii_upcase + " " + $p' \
| sort > public-operations.txtPutanja koja nedostaje u javnoj referenci pripada web-aplikaciji. Na glavnoj adresi i dalje radi, ali se na adresi API-ja ne poslužuje, a njezin oblik nije javna obveza. Zamijenite je javnom operacijom ili taj dio integracije zadržite na glavnoj adresi i javite svojoj kontaktnoj osobi u Sursi što vam treba.
Provjerite kako se autentificirate. Ako se integracija prijavljuje lozinkom korisnika i kolačićem sesije, najprije
je prebacite na API ključ. Ako šalje X-API-Key, prelazak na
Authorization: Bearer preporučuje se, ali nije obavezan.
Provjerite svoju mrežu. U vatrozidu i proxyjima dopustite odlazni HTTPS prema novom nazivu hosta.
Prijelaz korak po korak
-
Pretvorite osnovni URL u postavku svoje integracije, ako to već nije.
-
Isprobajte novu adresu zahtjevom za čitanje:
curl https://api.example.com/v1/me -H "Authorization: Bearer $SURSA_API_KEY" -
Pokrenite skup testova svoje integracije na novoj adresi, s testnim ključem i testnom zbirkom.
-
Prebacite dio prometa, na primjer jedan radni proces ili jedno okruženje, i u zapisnicima pratite
404 api.not_found,401i5xx. Svaki odgovor nosiX-Request-Id; čuvajte ga uz svoje zapisnike. -
Prebacite ostatak. Stari osnovni URL zadržite neko vrijeme u konfiguraciji kako biste se mogli vratiti u nekoliko sekundi.
Što provjeriti nakon prijelaza
GET /v1/healthna novoj adresi vraća istuversionkao i na staroj.- Odgovori sadrže zaglavlja
RateLimit. Ako vaša integracija sama usporava premaX-RateLimit-*, može to i dalje činiti: šalju se oba skupa. V. Ograničenja učestalosti i kvote. - Ako vaša integracija radi u pregledniku, više joj ne treba vlastiti proxy za CORS: adresa API-ja dopušta zahtjeve s bilo kojeg origina, bez kolačića.