Resurssin URI:n tulisi lukea kuin substantiivipohjainen polku johonkin asiaan, ei toimintona. HTTP-metodi tarjoaa jo verbin, joten URI:n tarvitsee vain tunnistaa resurssi selkeästi ja johdonmukaisesti.
Resurssin URI:n tulisi lukea kuin substantiivipohjainen polku johonkin asiaan, ei toimintona. HTTP-metodi tarjoaa jo verbin, joten URI:n tarvitsee vain tunnistaa resurssi selkeästi ja johdonmukaisesti.
GET /users/42 — ei GET /getUser?id=42. Metodi (GET) on verbi./users on collection; /users/42 on yksi jäsen. Monikon säilyttäminen kaikkialla pitää sen ennustettavana./users/42/orders = "tilaukset, jotka kuuluvat käyttäjälle 42".kebab-casea, pienaakkosia. /blog-posts, ei /blogPosts eikä /Blog_Posts./users?role=admin&sort=-created_at./users collection of users
/users/42 a single user
/users/42/orders orders belonging to user 42 (sub-collection)
/users/42/orders/1001 a specific order of that user
/orders/1001 same order, addressable at top level too
GET /users/42/orders?status=shipped&sort=-created_at&page=2 HTTP/1.1
Accept: application/json
Vältä syvää sisäkkäisyyttä yhtä tai kahta tasoa pidemmälle — /users/42/orders/1001/items/5/reviews muuttuu hauraaksi. Kun tilauksella on oma ID, suosi /orders/1001. Toiminnoille, jotka eivät sovi CRUD:iin (esim. "lähetä sähköposti"), controller-tyylinen aliresurssi on hyväksyttävä: POST /users/42/verify-email.
Johdonmukainen nimeäminen tekee API:sta intuitiivisen tuntuisen — kehittäjä, joka on nähnyt /users ja /users/42, voi arvata oikein /products ja /products/99 lukematta dokumentaatiota. Haastattelijat käyttävät tätä arvioidakseen, ajatteletko resursseina (REST-ajattelutapa) etkä RPC-kutsuina (/doThisThing). Yleisimmät anti-patternit — verbit polussa, epäjohdonmukainen monikko/yksikkö ja syvästi sisäkkäiset URL:t — tekevät API:sta vaikeamman oppia ja ylläpitää, ja ne viestivät kehittäjästä, joka ei ole sisäistänyt REST:in uniform-interface-rajoitetta. Hyvä URI-suunnittelu pitää myös huolenaiheet erillään: identiteetti polussa, suodatus ja sivutus query stringissä, mikä pitää cachetuksen ja reitityksen siisteinä.
Kirjasto IT-haastattelukysymyksiä yksityiskohtaisine vastauksineen — Juniorista Senioriin.
Lahjoita