Non capisco esattamente il tuo esempio specifico, ma cercherò comunque di dare il mio consiglio.
REST riguarda esclusivamente le entità, lo stato e le transizioni di stato. Sembra quasi che quello che vuoi fare sia una query per qualche stato. Diamo un'occhiata ai verbi HTTP comuni:
POST
- Comunemente utilizzato per creare uno stato aggiuntivo sul server.
PUT
- Comunemente usato per creare o aggiornare lo stato esistente sul server.
DELETE
- Utilizzato per eliminare alcuni stati dal server.
I metodi sopra riportati non hanno senso per il controllo dello stato esistente, che si vuole fare. Ho omesso CONNECT, TRACE e OPTIONS, poiché anche quelli non sembrano appropriati qui.
GET
- Utilizzato per ottenere lo stato dal server.
HEAD
- Come GET ma restituisce solo i metadati.
Quindi sembra che GET o HEAD siano i più appropriati, a seconda di dove si stanno restituendo le informazioni (nei metadati o nell'entità / corpo). Dal momento che non stai trasferendo lo stato sul server, ma interrogandoli, forse dovrebbe essere la responsabilità del client che fa l'asserzione di farlo invece del server che fa asserzioni.
Se vuoi sfruttare i codici di errore HTTP, forse potresti aggiungere un parametro di query. Ad esempio, post HEAD? Min_posts = 5 potrebbe restituire 404 (non trovato) se non ci sono post che soddisfano tale requisito. Altrimenti potrebbe restituire 204 (Nessun contenuto) se soddisfa il requisito.
Se non vuoi usare GET o HEAD, puoi provare a usare POST, ma questo richiede che tu crei qualche entità che rappresenti lo stato che stai postando, es. un'entità "asserzione". Potrebbe restituire 409 (Conflitto) se l'asserzione fallisce, poiché lo stato della risorsa nella richiesta (cioè l'asserzione) ha un conflitto (cioè non è vero o non è passato). Se l'asserzione passa, è possibile restituire 204 (nessun contenuto). Questo approccio mi sembra un trucco per me, comunque. Ma potrebbe effettivamente avere senso, a seconda dei dettagli del tuo sistema.
Voglio anche aggiungere che un'API "REST" viene raramente implementata correttamente. A volte a causa di compromessi accettabili / pratici dalle linee guida REST. Altre volte a causa dell'ignoranza di ciò che significa REST.