Aller au contenu

Rute i CRUD

Rute su ulazne tačke vašeg API-ja. Grupisane su po resursu i možete ih pisati ručno ili ih generisati iz modela.

Sekcija Rute: grupa CRUD ruta generisana iz modela, sa metodama, putanjama i odgovorima

Ruta nosi metodu, putanju, parametre i odgovore. Putanja koristi sintaksu {{param}} iz Restorma: čim upišete {{id}} u putanju, pojavljuje se odgovarajući parametar; njegovim uklanjanjem se briše.

Kartica Definisanje rute nabraja njene parametre — parametre putanje (kreirane iz rezervisanih mesta {{param}}) i parametre upita / zaglavlja koje dodajete pomoću Dodaj parametar. Svaki nosi naziv, lokaciju (in), svoju obaveznost, opis i, opciono, primer.

Ćelija Tip je combo: izaberite primitiv (string, integer, number, boolean) ili jedan od imenovanih enuma dizajna jednim klikom. Za bogatije slučajeve izaberite Advanced… da otvorite mali prozor u kojem možete:

  • pretvoriti parametar u niz i izabrati njegov tip elementa (array<string>, …) — viševrednosni parametar upita;
  • dati mu ugrađene vrednosti enuma (dozvoljeni skup, nabrojan kao bedževi) kada nije tipiziran imenovanim enumom;
  • Izdvoji u imenovani enum — promovisati te ugrađene vrednosti u deljeni enum (vidi Modeli i enumi).

Parametar se takođe može povezati sa svojstvom modela (kolona Veza sa modelom), od kojeg nasleđuje tip, ili se označiti zastarelim. Svaki parametar — njegov tip, njegov enum, njegova zastarelost — nalazi se u generisanoj dokumentaciji i u svakoj projekciji protokola.

Iz podešavanja modela Generiši CRUD jednim klikom kreira grupu ruta nazvanu prema množini modela, sa šest ruta:

RutaMetoda i putanjaOdgovori
ListaGET / (paginirano)200
PreuzmiGET /{{id}}200 · 404
KreirajPOST /201
ZameniPUT /{{id}}200 · 404
AžurirajPATCH /{{id}}200 · 404
ObrišiDELETE /{{id}}204 · 404

Lista je paginirana (pomak/offset, 20 elemenata podrazumevano, 100 najviše). Svaki {{id}} automatski je povezan sa identifikatorom modela.

Dijalog Generiši CRUD nudi dve opcije:

  • Zameni postojeće rute — kako biste izbegli duplikate kada ponovo generišete.
  • Zaštiti rute za pisanje autentifikacijom — kreiranje, zamena, ažuriranje i brisanje tada zahtevaju token (bearer), dok čitanja ostaju javna.

Takođe podseća da se CRUD poslužuje u svakom protokolu: REST rute, GraphQL upiti i mutacije, gRPC metode, OData skup entiteta i SOAP operacije (vidi Posluživanje dizajna kao mock).

Za svako svojstvo označeno kao searchable, Generiši rute pretrage dodaje parametar upita povezan sa rutom liste modela (i kreira tu rutu ako još ne postoji).

Autentifikacija se podešava na tri nivoa: podrazumevana vrednost dizajna, potrebna autentifikacija po grupi i nadjačavanje po ruti (koje nasleđuje podrazumevanu vrednost grupe). Dostupni režimi su Nijedan, Bearer (JWT), API ključ (zaglavlje) i Basic.

Oznake grupišu rute za dokumentaciju i OpenAPI izvoz. Postoje na dva nivoa: ruta nosi sopstvene oznake (svoja kartica Definisanje), a grupa nosi deljene oznake (svoja podešavanja) primenjene na svaku njenu rutu. Delotvorne oznake rute su unija dveju — pa se oznaka zajednička celoj grupi najbolje postavlja jednom na grupi. Kada uvezeni API pretvorite u dizajn, oznaka prisutna na svim rutama grupe automatski se podiže na grupu.

Ruta (poput svojstva ili parametra) može se označiti zastarelom iz svojih Podešavanja. Zastarela ruta prikazuje se zasivljeno u listi Ruta i u generisanim klijentima i nosi upozorenje o zastarelosti na svojoj kartici. Zastavica se propagira u svaku projekciju protokola — OpenAPI deprecated, GraphQL direktiva @deprecated, SOAP i gRPC deskriptori i OData metapodaci — kako bi je potrošači bilo kog posluženog protokola videli.