Originariamente inviata da
andbin
Non � questione se "funziona" ... NON � REST.
S� ma non c'entra nulla direttamente con REST. Poi non � che deve fare
solo una cosa, pu� anche fare pi� cose purch� molto correlate. Se un microservizio si occupa di gestire gli utenti (elencarli, registrarli, ecc..) allora non si occuper� di certo di ricevere gli ordini di prodotti, perch� � un contesto ben diverso.
Non � questo il punto. La vera questione � REST, che temo non hai affatto usato.
REST innanzitutto � uno "stile architetturale". L'obiettivo generale � di utilizzare HTTP come protocollo di livello "applicativo", sfruttando tutto ci� che HTTP ha da offrire, cio�: url, header, verbi, status code,
content-negotiation, ecc...
REST vuol dire Representational State Transfer, il concetto essenziale � quello di trasferire avanti e indietro delle "rappresentazioni" delle risorse. Che possono essere in vari formati, JSON, XML, altro. Se l'applicazione � fatta e gestita opportunamente, pu� anche offrire pi� formati per una stessa risorsa in base alla content-negotiation tra client e server. Un client A potrebbe chiedere la rappresentazione XML di un libro con ID 1234 e un altro client B potrebbe chiedere la rappresentazione JSON dello stesso libro con ID 1234.
A livello basilare vuol dire:
- sfruttare gli url per rappresentare delle "risorse"
- usare i verbi HTTP (es. GET, POST ecc...) per realizzare le classiche operazioni CRUD (create-read-update-delete)
Esempio semplice: gestione di libri. Si stabilire un url che rappresenta la "collezione" dei libri es.
http://blabla/api/books
(nota, books al plurale!)
GET
http://blabla/api/books
per ottenere la lista dei libri (eventualmente filtrata e/o paginata e/o ordinata usando appositi query param)
GET
http://blabla/api/books/1234
per ottenere la rappresentazione del libro di ID 1234
POST
http://blabla/api/books
per inserire un nuovo libro (rappresentazione del libro nel
body della request)
PUT
http://blabla/api/books/1234
per aggiornare il libro di ID 1234 (nuova rappresentazione del libro nel
body della request)
DELETE
http://blabla/api/books/1234
per eliminare il libro di ID 1234
Se hai fatto qualcosa gi� di abbastanza/molto diverso da una cosa del genere .... non � REST ..... � HTTP usato a casaccio ...