2015-06-18 10 views
9

Sto cercando di ottenere risposte diverse passando parametri diversi ma qualcosa non funziona.Apiary.io - risposte multiple (200) con diversi parametri

Questo è il mio API:

## Question [/questions/{question_id}] 

A Question object has the following attributes: 

+ Parameters 
    + question_id: `1` (number, required) - ID of the Question in form of an integer 

### View a Questions Detail [GET] 

+ Request 

+ Header 

    X-Custom-Header : 1 

+ Response 200 (application/json) 

     { 
      "id": "1", 
      "name": "Marco" 
     } 


+ Request 

+ Header 

    X-Custom-Header : 2 

+ Response 200 (application/json) 

     { 
      "id: "2", 
      "name": "Lucas" 
     } 

Ma al momento della chiamata/domande/1 o/domande/2 la risposta è sempre la stessa:

{ 
    "id": "1", 
    "name": "Marco" 
} 

Cosa c'è di sbagliato?

Grazie

risposta

3

Nulla è sbagliato nel progetto. Temo che Apiary Mock sia piuttosto semplicistico e restituisce sempre la prima risposta specificata (content-negotiation permettendo) come predefinita.

Vedere "Richiamo di risposte non predefinite" in Apiary http://support.apiary.io/knowledgebase/articles/117119-handling-multiple-actions-on-a-single-resource per vedere come richiamare (su richiesta) un'altra risposta.

noti inoltre venga proposto un sintassi API Blueprint di dichiarare esplicitamente quali valori dei parametri sono legati a una particolare risposta - https://github.com/apiaryio/api-blueprint/issues/58

Tuttavia se vorrà beneficiare finta di apiario di questo è chiaro al momento.

+0

Grazie Zdenek per la risposta. Non riesco ancora a capire come implementare la mia API, anche leggendo "Invocare risposte non predefinite". Sareste in grado di fornire un esempio per favore? Credo che ci siano molte persone che cercano questo esempio. – MeV

+0

L'unico modo per richiamare una risposta non predefinita è utilizzare un codice e un tipo di risposta diversi, quindi presumo non sia possibile restituire due risposte con il codice 200 e digitare application/json, giusto? – MeV

+0

L'importante è capire che Apiary non fornisce l'implementazione di un'API. Ti dà semplicemente un mock server per scopi di prototipazione. L'implementazione dipende solo da te (anche se puoi e dovresti testarlo con strumenti come Dred). – Zdenek

2

Credo che ci sia una soluzione semplice per fare questo senza usare le intestazioni:

Creare risorse diverse (una per ogni record), così ognuno genererà un URL.

## Note20 [/notes/20] 

### Get notes20 [GET] 

+ Response 200 (application/json) 

     { 
      "id" : 20, 
      "name" : "note xxxx" 
     } 

## Note21 [/notes/21] 

### Get notes21 [GET] 

+ Response 200 (application/json) 

     { 
      "id" : 21, 
      "name" : "note yyyyy" 
     } 
+2

Sì, questo funzionerebbe se non lo facessi la mente ha più risorse simili nella documentazione – Zdenek

Problemi correlati