2015-06-18 25 views
9

Próbuję uzyskać różne odpowiedzi, przekazując różne parametry, ale coś nie działa.Apiary.io - wiele odpowiedzi (200) o różnych parametrach

To mój 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" 
     } 

Ale podczas rozmowy/pytania/1 lub 2/pytania/odpowiedź jest zawsze taka sama:

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

Co jest nie tak?

Dziękujemy

Odpowiedz

3

Nic nie jest nie tak z Twoim projektem. Obawiam się, że Pasieka Mock jest raczej uproszczona i zawsze zwraca domyślną pierwszą określoną odpowiedź (zezwolenie na negocjowanie treści).

Zobacz "Wywoływanie innych niż domyślne odpowiedzi" w Pasiece http://support.apiary.io/knowledgebase/articles/117119-handling-multiple-actions-on-a-single-resource, aby zobaczyć, jak wywołać (na żądanie) inną odpowiedź.

Należy również pamiętać, że jest to proponowane składnia w API Blueprint jednoznacznie określić, jakie wartości parametrów są przypisane do konkretnej odpowiedzi - https://github.com/apiaryio/api-blueprint/issues/58

Jednak czy będzie mock wykorzystać to pasieki tego jest jasne, w tej chwili.

+0

Dziękuję Zdenek za odpowiedź. Nadal nie jestem w stanie zrozumieć, jak zaimplementować mój interfejs API, nawet czytając "Wywoływanie innych niż domyślne odpowiedzi". Czy byłbyś w stanie podać przykład? Wierzę, że jest sporo osób szukających tego przykładu. – MeV

+0

Jedynym sposobem wywołania odpowiedzi innej niż domyślna jest użycie innego kodu i typu odpowiedzi, dlatego zakładam, że nie jest możliwe zwrócenie dwóch odpowiedzi z kodem 200 i typu application/json, czy to prawda? – MeV

+0

Ważną rzeczą jest zrozumienie Pasieka nie zapewnia implementacji API. To tylko fałszywy serwer do celów prototypowania. Wdrożenie zależy od Ciebie (choć możesz i powinieneś przetestować je za pomocą narzędzi takich jak Dred). – Zdenek

2

Wierzę, że istnieje proste rozwiązanie, aby to zrobić bez użycia nagłówków:

Tworzenie różnych zasobów (jeden dla każdego rekordu), więc każdy z nich generuje jeden adres 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

Tak, to zadziała, jeśli nie będziesz umysł mający wiele podobnych zasobów w dokumentacji – Zdenek