2016-07-08 1 views
0

Api Blueprint와 Drakov의 조합으로 API를 조롱하려고합니다. 그러나 특정 엔드 포인트에 대해서는 요청 페이로드가 무엇인지 미리 알지 못합니다. 아래 코드를 참조하십시오.APIB - 요청 페이로드에 관계없이 항상 POST 요청에 응답합니다.

# Group Stuff 

Description about stuff. 

## Main Stuff Resource [stuff/{userId}/response/{responseId}] 

+ Parameters 
    + userId: specialUser (string, required) - ID of user 
    + responseId: 0f9d78ee-005056ad6f10 (string, required) - ID for a particular response. 

### Submit Survey Form [POST] 

+ Attributes 
    + attribute1 (array[object]) - Description for attribute 1 
    + attribute2 (array[object]) - Description for attribute 1 

+ Request (application/json) 
    {attribute1:[],attribute2[]} 

+ Response 201 (text/plain; charset=utf8) 
    + Headers 
     X-XSS-Protection: 0 
     Vary:Origin,Accept-Encoding 
     Access-Control-Allow-Credentials:true 
    + Body 
     http://fakeurl.com 

위의 코드는 작동하지만 요청 페이로드는 정확히{attribute1:[],attribute2:[]} 경우에만. 심지어 다른 whitespacing이 Drakov에서 404에 대한 사용자 및 오류 로그 반환, 그것을 팁을 보인다 나는 Request 섹션에서 JSON 예제를 제거는 Request 섹션을 제거의 Attributes 섹션을 제거하려고했습니다 [WARNING] JSON body could not be parsed. Using body as is.

을, Response 섹션을 제외한 모든 섹션을 삭제하고 Schema 섹션을 사용합니다. 이 중 아무 것도 작동하지 않는 것으로 보이며 API Blueprint 문서에서 이에 대한 언급을 찾을 수 없습니다.

어떻게 난 항상 요청 페이로드 또는 attribute1attribute2의 내용의 형식이 될 것입니다 알고하지 않는 것이 주어진, 그 엔드 포인트에서 POST 요청에 해당 응답을 반환 할 수 있습니다 ?

답변

1

안녕하세요 @ LanceLafontaine 저는 드라 코프 메인테이너 중 한 명입니다.

http://github.com/Aconex/drakov/issues

그것은 내가 '이후 잠시 짧은이었다

가 Drakov의 REPO에뿐만 아니라 문제를 게시 자유롭게 (청사진의 API 사양 파일에서) { "attribute1": [], "attribute2": [] }을로 요청을 변경 시도 되세요 구문 분석 코드를 살펴 보았지만 Drakov가 구문을 분석하고 있다고 생각하지 않습니다. Request 섹션에서 일치를 시도합니다.

+0

이것은 작동하는 것 같습니다. 요청 섹션을 사용하는 것뿐만 아니라 결과를 초래하는 속성 주위의 따옴표를 조합하여 사용하는 것 같습니다. +1 – LanceLafontaine

관련 문제