API parimad praktikad
Mustrid ja soovitused Entu API-ga tõhusaks töötamiseks.
Tõhus pärimine
Kasuta konkreetseid filtreid klientpoolse filtreerimise asemel:
# Hea — filtreeri serveris
GET /api/{db}/entity?status.string=active&_type.reference=TYPE_ID
# Väldi — kõigi toomine ja klientpoolne filtreerimine
GET /api/{db}/entity?_type.reference=TYPE_IDPiira tagastatavaid parameetreid vastuse suuruse vähendamiseks:
GET /api/{db}/entity?props=name,status,_created&limit=100Kasuta .in mitme väärtuse filtreerimiseks ühe päringuga:
GET /api/{db}/entity?status.string.in=active,pending,reviewKasuta lehitsemist suurte andmekoguste jaoks:
GET /api/{db}/entity?limit=100&skip=0 # esimene lehekülg
GET /api/{db}/entity?limit=100&skip=100 # teine lehekülgTäieliku filtrisüntaksi kohta vaata Päringu viide.
Pakettoperatsioonid
Loo objekte mitme parameetriga ühe päringuga, mitte eraldi kõnedena:
[
{ "type": "name", "string": "Toode" },
{ "type": "price", "number": 99.99 },
{ "type": "status", "string": "active" }
]Failide üleslaadimine
Kasuta alati täpseid MIME-tüüpe:
{ "type": "document", "filename": "report.pdf", "filesize": 1245678, "filetype": "application/pdf" }Lae failid otse S3-sse üles, kasutades allkirjastatud URL-i — ära vahenda faile oma serveri kaudu. Allkirjastatud üleslaadimise URL aegub 60 sekundi pärast — lõpeta PUT kohe.
Tokeni haldamine
Vahemällu salvesta JWT tokenid — kehtivad 12 tundi. Kasuta neid uuesti, ära küsi operatsiooni kohta uusi. Uuenda enne aegumist GET /api/auth/refresh kaudu.
WARNING
Ära lisa kunagi API võtmeid lähtekoodi. Kasuta keskkonna muutujaid või saladuste haldurit. Kui võti on paljastunud, kustuta see isikuobjektist ja genereeri kohe uus.
Jõudlus
Tee parameetrid q abil leitavaks, lubades parameetri definitsioonil search — ainult need väärtused lähevad täistekstotsingu indeksisse. Filtrid _type.string, _parent.reference ja name.string kasutavad andmebaasi indekseid.
Väldi tarbetuid agregatsioone — tavalised GET-päringud tagastavad vahemällu salvestatud andmeid. Kasuta GET /api/{db}/entity/{_id}/aggregate ainult siis, kui vajad pärast väliseid muutusi värskeid valemi väärtusi.
Vigade käitlemine
Kontrolli olekukoode:
401— Uuenda autentimistokenit403— Kasutajal puuduvad õigused; kontrolli objekti õigusi404— Objekti/parameetrit ei leitud400— Kontrolli päringu keha struktuuri
Proovi 5xx vigu uuesti eksponentsiaalse taandumisega. Ära proovi 4xx vigu uuesti.
Turvalisus
- Kasuta ainult HTTPS-i
- Valideeri ja puhasta kasutaja sisend enne parameetrite loomist
- Ära toetu klientpoolsele juurdepääsukontrollile — kontrolli õigused serveripoolselt
DANGER
_sharing: public avalikustab objekti andmed kõigile internetis, sealhulgas otsingumootori robotitele. Ära kasuta seda tundlike või sisemiste andmete jaoks.
