Ho un'API REST che è stata costruita sopra (di fronte a) un sistema legacy, per consentire a terze parti di varie piattaforme di interagire con il sistema.
La maggior parte delle volte, posso definire una risorsa e creare un GET e POST / PATCH, ecc. Tuttavia, ho un paio di casi in cui il GET deve essere in grado di gestire potenzialmente un gran numero di dati di richiesta, ad es. ID risorsa, troppi per un parametro di query.
Esempio di API / libri.
Devo essere in grado sia di richiedere dati sui libri esistenti, sia di aggiungere nuovi libri nel sistema.
Quindi, avrei normalmente
GET api/books
POST api/books
I problemi sono che ho bisogno di essere in grado di supportare un numero (potenzialmente) grande se id per richiedere oggetti con informazioni su un sottoinsieme dei libri, più di quanto possa essere incluso in un url come parametri di query. In precedenza, in un caso come questo, ho usato (a malincuore) un POST per inviare i parametri della richiesta nel corpo.
Il problema qui è che volevo usare il POST per aggiungere un nuovo libro.
Un dibattito su come gestirlo è avvenuto oggi e, sebbene possiamo usare
POST api/books
(come GET)
PATCH api/books
come add
Pensato anche a
POST api/books/get
, ma questo sembra solo sbagliato (con un verbo nell'URL).
Qualcun altro ha dovuto affrontare una situazione simile, in cui è necessario utilizzare il POST per GET, ma è comunque necessario "POST" per la risorsa, o forse avere qualche suggerimento su un modo migliore per farlo rispetto a quello è suggerito sopra?
Grazie in anticipo per qualsiasi aiuto!