Leiðbeiningar

Hvernig á að smíða REST API: hönnun, öryggi og birting

Til að smíða REST API skaltu skrá auðlindirnar sem appið þitt heldur utan um (notendur, pantanir, bókanir), gefa hverri þeirra slóð eins og /orders og /orders/{id}, og nota HTTP-aðferðir fyrir aðgerðir: GET til að lesa, POST til að búa til, PATCH til að uppfæra og DELETE til að eyða. Skilaðu JSON með skýrum stöðukóðum, staðfestu sérhvert innslag, krefstu auðkenningar og athugana á heimildum fyrir hverja færslu á þjóninum, og settu upp síðuskiptingu fyrir lista. Skráðu síðan endapunktana og birtu API-ið á bak við HTTPS.

Þessi leiðarvísir fjallar um hönnunarákvarðanirnar, dæmi um slóðir, forskriftir fyrir gervigreindar-smíðatól og villurnar sem valda öryggisgötum. Ef API eru ný fyrir þér skaltu byrja á hvað API er.

Hvenær þú þarft REST API

  • Vefviðmótið þitt þarf að vista og sækja gögn af þjóni
  • Farsímaforrit, samstarfsaðili eða sjálfvirkt verkfæri þarf aðgang að gögnunum þínum
  • Aðrar þjónustur senda þér atburði (webhooks)
  • Þú ert að skipta vinnunni á milli framenda- og bakendateymis

REST er algengasti stíllinn, en ekki sá eini. REST vs GraphQL útskýrir hvenær ein sveigjanleg fyrirspurnarleið hentar betur.

Hönnun fyrst: auðlindir og slóðir

Skrifaðu niður nafnorðin í appinu þínu og hvað fólk gerir við þau. Fyrir einfalt bókunarapp:

AðferðSlóðHvað hún gerirKóði við árangur
GET/api/bookingsListar bókanir notandans (með síðuskiptingu)200
POST/api/bookingsBýr til bókun201
GET/api/bookings/{id}Sækir eina bókun200
PATCH/api/bookings/{id}Breytir sumum reitum200
DELETE/api/bookings/{id}Hættir við bókun204
GET/api/healthHeilsuathugun fyrir eftirlit200

Þessi falla að því að búa til, lesa, uppfæra og eyða; sjá hvað CRUD er. Venjur sem vert er að fylgja:

  • Fleirtölu nafnorð, engar sagnir í slóðum: /bookings, ekki /getBookings.
  • Hreiðra aðeins eitt stig þegar það skýrir eignarhald: /bookings/{id}/notes.
  • Aðgerðir sem eru ekki CRUD geta verið undirauðlindir: POST /bookings/{id}/cancel er skýrara en töfrandi PATCH.
  • Samræmd nöfn á reitum, til dæmis created_at alls staðar.

Stöðukóðar og villur

Notaðu staðlaða HTTP-kóða svo að viðskiptavinir viti hvað gerðist án þess að lesa texta:

KóðiMerkingNotaðu þegar
200OKVel heppnaður lestur eða uppfærsla
201CreatedPOST bjó eitthvað til
204No ContentTókst, en ekkert að skila
400Bad RequestInnslag stóðst ekki staðfestingu
401UnauthorizedEkki innskráð(ur) eða rangt auðkenni
403ForbiddenInnskráð(ur) en ekki leyft
404Not FoundFinnst ekki, eða notandinn má ekki vita að það sé til
409ConflictAfrit, eða tímabilið er þegar bókað
429Too Many RequestsHraðatakmörk náðust
500Server ErrorEitthvað bilaði hjá þér

Skilaðu villum í einu samræmdu JSON-formi, til dæmis {"error": {"code": "slot_taken", "message": "Þessi tími er ekki lengur laus."}}, og hafðu aldrei stack trace eða gagnagrunnsvillur í svörum.

Valkostir og málamiðlanir

ÁkvörðunEinfalt valValkostur
Hvar API-ið býrAPI-leiðir í veframmanum þínumSérstök API-þjónusta, gagnleg fyrir marga viðskiptavini eða annað forritunarmál
AuðkenningSetukökur fyrir þinn eigin vefappTákn (bearer-tákn eða API-lyklar) fyrir farsímaöpp og þriðja aðila
Síðuskipting?page=2&limit=20Bendill (?after=...), stöðugri fyrir stóra lista sem breytast
ÚtgáfurEngin fyrr en þú ert með utanaðkomandi notendur/v1/ í slóðinni þegar aðrir treysta á það
SkjölREADME sem listar slóðirnarOpenAPI-lýsing, sem verkfæri geta breytt í gagnvirk skjöl og viðskiptavinakóða

Skref fyrir skref

  1. Skráðu auðlindir og slóðir eins og að ofan, þar á meðal hver má kalla á hverja.
  2. Móttu gögnin í gagnagrunninum þínum með þeim reitum og tengslum sem þú þarft.
  3. Smíðaðu leslesturleiðir fyrst, síðan búa til, uppfæra og eyða.
  4. Staðfestu innslag í hverri skrifaðgerð með skemaasafni: nauðsynlegir reitir, gerðir, lengdir, leyfð gildi. Hafnaðu óþekktum reitum.
  5. Bættu við auðkenningu, og síðan heimildastýringu fyrir hverja færslu: að opna /bookings/42 verður að athuga að bókun 42 tilheyri notandanum, ekki bara að einhver sé innskráður.
  6. Settu síðuskiptingu á alla lista og takmarkaðu stærð síðu.
  7. Takmarkaðu fjölda beiðna á innskráningu og dýrar leiðir. Sjá hraðatakmarkanir.
  8. Stilltu CORS aðeins ef vafrar á öðrum lénum þurfa að kalla á API-ið, og skráðu þau upprunalén sérstaklega. Hvernig lagar maður CORS-villur útskýrir villurnar sem þú sérð.
  9. Skrifaðu skjöl og próf fyrir hverja leið, þar á meðal tilvikin sem mistakast.
  10. Birtu með leyndarmálum í umhverfisbreytum, HTTPS, skráningu og heilsuathugun.

Forskriftir fyrir gervigreindar-smíðatólið þitt

Grind:

Búðu til REST API fyrir bókanir með þessum leiðum: GET /api/health, GET /api/bookings (með síðuskiptingu, hámark 50 á síðu), POST /api/bookings, GET /api/bookings/:id, PATCH /api/bookings/:id, DELETE /api/bookings/:id. Geymdu gögnin í gagnagrunninum okkar. Staðfestu beiðnabúka með skemasafni og hafnaðu óþekktum reitum. Skilaðu JSON-villum sem {"error": {"code", "message"}} með réttum stöðukóðum (400, 401, 403, 404, 409). Geymdu leyndarmál í umhverfisbreytum.

Öryggi:

Krefstu innskráningar á öllum bókunarleiðum. Við hverja lestur, uppfærslu og eyðingu skaltu athuga á þjóninum að bókunin tilheyri núverandi notanda; skila 404 ef ekki. Taktu aldrei við notendaauðkennum eða hlutverkum úr beiðnabúkinu. Takmarkaðu POST /api/bookings við 20 á mínútu á hvern notanda. Skráðu villur á þjóninum án þess að skila stack trace.

Skjöl:

Skrifaðu OpenAPI-lýsingu á þessum leiðum og stutt README með dæmum um beiðnir og svör fyrir hverja leið.

Prófun á API-inu þínu

Prófaðu utan framendans, því árásaraðilar gera það:

  • Hver leið virkar með réttu innslagi og skilar skráðu formi og kóða
  • Vantar eða ógild reitir skila 400 með skýrum skilaboðum
  • Ekkert auðkenni skilar 401 á öllum vernduðum leiðum
  • Notandi A sem biður um færslu notanda B eftir auðkenni fær 404 eða 403
  • Listar eru með síðuskiptingu; of stór limit er takmarkaður
  • Afrit eða stangast á við stofnun skila 409, ekki 500
  • Hraðatakmarkanir skila 429
  • Villusvör innihalda engin stack trace, SQL eða leyndarmál
  • CORS leyfir aðeins þau upprunalén sem þú ætlar

Algeng mistök

  • Athuga innskráningu en ekki eignarhald. Algengasta API-gatið: hver innskráður notandi getur lesið hvaða færslu sem er með því að breyta auðkenninu.
  • Treysta viðskiptavininum. Verð, hlutverk og notendaauðkenni úr beiðnabúknum er hægt að breyta.
  • Skila heilum gagnagrunnsröðum. Lykilorðsvöfflur og innri reitir leka. Veldu hvað hvert svar inniheldur.
  • Ótakmarkaðir listar. Ein beiðni fyrir allar færslur getur hægt á allt appið.
  • 200 OK með villuskilaboðum inni í. Viðskiptavinir og eftirlit sjá ekki að það mistókst.
  • CORS stillt á að leyfa allt á API sem notar setukökur.
  • Engin heilsuathugun eða skráning, þannig að þú frétt af truflunum frá notendum.

Fyrir víðtækari yfirferð fyrir opnun, sjá öryggisgátlistann fyrir forrit smíðuð með gervigreind.

Að smíða REST API í Mythex

Þú getur beðið Mythex um API sem hluta af appinu þínu eða sem sérstaka þjónustu. Skjalauppskriftin REST API backend hefur upphafsforskrift: nefndu rammann og leiðirnar, biddu um skýrar JSON-villur, geymdu leyndarmál í umhverfisbreytum og hafðu Dockerfile með. Gámabakendar í Node, Python, C#, Java og fleiri birtast í gegnum Dockerfile, og Mythex sér um birtinguna úr Publish (API backends). Verkefni getur keyrt vefsíðu og API-þjón hlið við hlið, og þú getur skipt á milli þeirra í forskoðuninni. Geymdu lykla sem verkefnisleyndarmál, og ef API-ið þarf gagnagrunn skaltu biðja um hann í spjallinu. Fyrir tímasett verk í kringum API-ið, sjá hvernig keyrir maður bakgrunnsverk.

Spurningar

Hvað er REST API?

REST API er leið fyrir forrit til að vinna með gögn appsins þíns yfir HTTP. Hver tegund gagna er auðlind með sína eigin slóð, til dæmis /orders, og staðlaðar aðferðir vinna með hana: GET til að lesa, POST til að búa til, PATCH eða PUT til að uppfæra og DELETE til að eyða. Gögnin eru yfirleitt send sem JSON.

Í hvaða forritunarmáli á ég að smíða REST API?

Notaðu það sem þú eða teymið þitt getur viðhaldið. Node.js með Express eða Fastify, Python með FastAPI og C# eða Java rammar virka allir vel. Hönnunarreglurnar fyrir slóðir, stöðukóða, staðfestingu og auðkenningu skipta meira máli en forritunarmálið.

Hvernig tryggi ég REST API?

Krefstu auðkenningar á öllum leiðum sem eru ekki opinberar, athugaðu á þjóninum að notandinn megi fá aðgang að hverri tiltekinni færslu, staðfestu allt innslag, notaðu HTTPS, takmarkaðu fjölda beiðna og geymdu leyndarmál í umhverfisbreytum. Treystu aldrei auðkenni eða hlutverkum sem viðskiptavinurinn sendir.

Þarf ég sérstakan bakenda fyrir REST API?

Ekki alltaf. Rammar eins og Next.js geta þjónað API-leiðum með síðunum. Sérstök API-þjónusta á við þegar margir viðskiptavinir (vefur, farsímar, samstarfsaðilar) nota hana, eða þegar hún þarf eigið forritunarmál eða eigin skölun.

Mythex · Pricing · Smíðaðu hvað sem er með gervigreind · Sniðmát fyrir vefsíður og forrit · Mythex í samanburði · Orðasafn um forritasmíði með gervigreind · Ókeypis verkfæri fyrir forritasmíði með gervigreind · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)