Delivery 1.0 Help

Ustandaryzowanie konstrukcji REST API

Tytuł

Ustandaryzowanie konstrukcji REST API

Standard

Zasady komunikacji REST API

Status

Data zgłoszenia

Autorzy

Maciej Walczak

Właściciele

Maciej Walczak

Epik

<style type="text/css"> #refresh-module-877707143 .icon { background-position: left center; background-repeat: no-repeat; display: inline-block; font-size: 0; max-height: 16px; text-align: left; text-indent: -9999em; vertical-align: text-bottom; } </style>

Kontekst

W związku z realizacją coraz większej ilości stron i paneli administracyjnych w technologii REST API, chciałbym ustandaryzować komunikację pomiędzy backendem a frontem. W tej chwili każdy projekt implementuje standard takiej komunikacji po swojemu - część opiera się głownie na kodach HTTP, część używa tylko GET i POST, inne zaś bazują głównie na zwracanych danych.

  • Jaki powinien być typ zwracanych danych? TEXT, JSON, XML?

  • Wg jakiej konwencji powinny być tworzone nazwy endpointów?

  • Jakich typów operacji chcemy używać i do czego? (GET, POST, PUT, DELETE…)

  • Czy opierać komunikację na kodach błędów HTTP, w jakim zakresie i jak je interpretować?

  • Jak realizować filtrowanie, sortowanie i paginację?

  • Jak zapewnić odpowiedni poziom bezpieczeństwa projektowanego API?

  • Czy i jak cacheować dane?

  • Jak zapewnić wersjonowanie API?

  • Jakich narzędzi używać do projektowania i testowania API?

Decyzje

  • Komunikacja w formacie JSON

  • Stosujemy odpowiednie metody HTTP oraz w przypadku błędów, odpowiednie kody HTTP

  • Stosujemy jedną ogólnie przyjętą formę danych zwracanych przez backend do frontu

  • W przypadku konieczności przesłania języka lub strefy czasowej przez front do backendu, stosujemy odpowiednie nagłówki HTTP

Konsekwencje

Notatki

https://github.com/joelparkerhenderson/architecture-decision-record

https://cheatsheetseries.owasp.org/cheatsheets/REST_Security_Cheat_Sheet.html

https://restfulapi.net/

Zasady komunikacji REST API

Last modified: 30 May 2024