Domanda di progettazione dell'API

3

Attualmente sto progettando un'API e ho riscontrato un leggero problema di progettazione e speravo in alcuni altri pareri. La mia struttura url per accedere ai dati di base dall'API è: / clientName / appName / methodName /. Fondamentalmente ogni cliente può avere un diverso insieme di metodi per ogni applicazione, quindi la classe di applicazione di base viene estesa attraverso ogni client se il file esiste. La mia domanda è con la limitazione dei dati tirati indietro attraverso una richiesta GET. Il numero limite dovrebbe essere aggiunto all'URL o è qualcosa che dovrebbe essere gestito solo attraverso la richiesta POST? Dovrebbe essere anche un'opzione? Alla ricerca di best practice in questo scenario, grazie.

    
posta chrisw 28.03.2011 - 17:17
fonte

1 risposta

9

L'URI che termina con "10" che rappresenta le righe restituite massime non è una risorsa. Il tuo numero "10" è ambito . L'ambito appartiene alla query in questo modo:

/ clientName / appName / nomeMetodo? Maxrows = 10

Inoltre, non richiameresti i dati su una richiesta POST. Hai POST'ing dati sul server web, non stai chiedendo di RICEVI .

Avrei anche chiesto di avere "methodName" nell'URI, questo odora di RPC su una richiesta GET. Non è così che dovrebbero essere progettati gli URI. Lo vedo come qualcuno che viene tentato di fare un HTTP GET '/ clientName / appName / saveData'.

Pensa alla tua applicazione come risorse:

/clientName/appName/products?like=foo
/clientName/appName/items?maxrows=10
/clientName/appName/items/keyboards/msnatural
    
risposta data 28.03.2011 - 20:42
fonte

Leggi altre domande sui tag