Flytta till API-adressen
Tidigare integrationer anropar API:et på Sursas huvudadress, den som folk öppnar i webbläsaren, till exempel
https://app.sursa.com/v1/…. API:et har nu också en egen adress, https://api.sursa.com i molnet eller
https://api.<your domain> i din installation. Den är byggd för integrationer: den skalar ut bakom en
lastbalanserare, och den betjänar ingenting annat än API:et.
Du behöver inte flytta. Huvudadressen fortsätter att betjäna /v1 för befintliga integrationer, utan slutdatum och
utan omdirigering. Flytta när det passar dig, för att få fördelarna med API-adressen, och använd den för varje ny
integration.
Vad som förblir detsamma
- Sökvägarna, parametrarna, fälten, felkoderna och händelserna:
GET /v1/cardsär samma anrop på båda adresserna. - API-nycklarna. Samma nycklar
kb_ochkbsrc_fungerar på båda adresserna, med samma roll, omfång och dataprofil. - Idempotensnycklar, hastighetsbegränsningar och kvoter. Anrop på båda adresserna räknas mot samma kvoter för organisationen.
- Webhookar. Leveranser, signaturer och hemligheter beror inte på vilken adress du anropar.
- Länkar i svaren.
doc_urli ett fel pekar på den här portalen, och huvudetLinkpå en sida i en lista pekar på API-adressen, oavsett vilken adress du anropar.
Vad som skiljer sig på API-adressen
| På huvudadressen | På API-adressen |
|---|---|
| Varje slutpunkt i webbapplikationen, även interna | Bara slutpunkterna i den offentliga API-referensen. Alla andra sökvägar svarar 404 med koden api.not_found. |
En nyckel i X-API-Key eller Authorization, eller en sessionscookie från webbläsaren | En nyckel eller en OAuth-åtkomsttoken, helst i Authorization: Bearer. Cookies ignoreras. |
GET /auth/me | GET /v1/me. Sökvägar under /auth/ betjänas inte. |
| Läget ”View as” (visa som en annan användare) via cookie | Huvudet X-View-As, för nycklar med rollen admin. |
| En server, eller en fast uppsättning | Flera servrar bakom en lastbalanserare. |
Den sista raden spelar roll i bara ett fall: ett strömmat svar från POST /v1/chat. En avbruten ström fortsätter från
Last-Event-ID bara på den server som skriver svaret. Om din integration återupptar strömmar ger du varje fråga ett
request_id, så att ett nytt försök på en annan server får det sparade svaret i stället för ett andra svar. Se
Återuppta en avbruten ström.
Innan du flyttar
Kontrollera att varje anrop är offentligt. Lista sökvägarna som din integration anropar och slå upp var och en i API-referensen, eller jämför dem med specifikationen för den nya adressen:
curl -s https://api.sursa.com/openapi.json \
| jq -r '.paths | to_entries[] | .key as $p | .value | keys[] | ascii_upcase + " " + $p' \
| sort > public-operations.txtEn sökväg som saknas i den offentliga referensen hör till webbapplikationen. Den fungerar fortfarande på huvudadressen, men den betjänas inte på API-adressen, och dess form är inget offentligt åtagande. Ersätt den med en offentlig slutpunkt, eller behåll den delen av integrationen på huvudadressen och berätta för din kontaktperson på Sursa vad du behöver.
Kontrollera hur du autentiserar. Om integrationen loggar in med en användares lösenord och en sessionscookie flyttar
du den först till en API-nyckel. Om den skickar X-API-Key rekommenderas ett byte
till Authorization: Bearer, men det är inte nödvändigt.
Kontrollera ditt nätverk. Tillåt utgående HTTPS till det nya värdnamnet i din brandvägg och dina proxyservrar.
Flytta steg för steg
-
Gör bas-URL:en till en inställning i din integration, om den inte redan är det.
-
Prova den nya adressen med ett läsanrop:
curl https://api.example.com/v1/me -H "Authorization: Bearer $SURSA_API_KEY" -
Kör integrationens testsvit mot den nya adressen, med en testnyckel och en testsamling.
-
Flytta en del av trafiken, till exempel en arbetsprocess eller en miljö, och håll utkik efter
404 api.not_found,401och5xxi dina loggar. Varje svar harX-Request-Id; spara det i dina loggar. -
Flytta resten. Behåll den gamla bas-URL:en i din konfiguration ett tag, så att du kan byta tillbaka på några sekunder.
Att kontrollera efter flytten
GET /v1/healthpå den nya adressen returnerar sammaversionsom på den gamla.- Huvudena
RateLimitfinns i svaren. Om din integration saktar ned sig själv utifrånX-RateLimit-*kan den fortsätta med det: båda uppsättningarna skickas. Se Hastighetsbegränsningar och kvoter. - Om din integration körs i en webbläsare behöver den inte längre din egen proxy för CORS: API-adressen tillåter anrop från alla ursprung, utan cookies.