프로젝트의 일부로 CakePHP로 작성된 PHP REST API가 있습니다. 모든 API 엔드 포인트는 컨트롤러에 개별 메소드로 존재하며 JSON 문자열에 인수와 리턴 값을 허용합니다. phpDocumentor2 이러한 메서드에 대한 매개 변수 및 반환 형식을 문서화하는 방법을 그림하려고합니다. 내가 UsersController의 편집() 메소드가있는 경우 예를 들어phpDocumentor 2에서 JSON 매개 변수와 반환 값을 어떻게 문서화해야합니까?
는 골격 사용자 모델에 대한 업데이트 지정된 필드 (나는 간결에 대한 코드를 단순화했습니다)이 같다고 :
public function edit() {
//Get arguments
$args = $this->request->data['args'];
$id = $args['id'];
//Perform processing
if (!$this->User->exists($id)) {
$data = $this->createError(300);
}
else {
$this->User->id = $id;
$saveData = array();
if (isset([$args['first_name'])) {
$saveData['User']['first_name'] = $args['first_name'];
}
if (isset([$args['last_name'])) {
$saveData['User']['last_name'] = $args['last_name'];
}
$isSaved = $this->User->save($saveData);
if (count($this->User->validationErrors) > 0) {
$data = $this->createError(202, $this->User->validationErrors);
}
else {
$data = array('status' => $isSaved ? 1 : 0);
}
}
//Output data
return $data;
}
I을 사용자의 이름과 성 :
{
"id": 1
"first_name": "John"
"last_name": "Doe"
}
API 호출이 성공하면 수정하려면 다음 JSON에 요청을 보낼 수 있습니다, 방법은 반환합니다
{
"status": 1
}
그리고 그것은 실패 할 경우, 아마도 실패 데이터 유효성 검사로 인해, 뭔가를 반환 할 수 있습니다 방법 :
{
"status": 0
"code": 202,
"messages": {
"first_name": {
"Numeric characters are not allowed."
}
}
}
내가 반환 값과 매개 변수를 각각 기록하기 phpDocumentor의 @return 및 @param을 사용할 수 있음을 이해 문서에서 JSON 반환에 대한 언급은 없습니다.
나는 예를 들어,
@return $value string A JSON string that contains the status code and error messages if applicable.
으로 반환 형식을 문서화 할 수 그러나 나는 거의 특히 "취득을 위해 (뭔가 비슷한 트위터의 상태/user_timeline 상상), 특히 더 복잡한 데이터 구조를 포함하는 반환을위한, 그 적절한 고려하지 "및"보기 "API 메소드를 제공합니다.
@param string $id The ID of the user to be updated.
@param string $first_name optional The first name of the user.
@param string $last_name optional The last name of the user.
: 한편
는 매개 변수에 대해, 나는 나를 (한 JSON 문자열에 싸여 모든 매개 변수를 고려) 각 매개 변수에 대한 한 줄을 작성하는 것이 같은 맞는지 확실하지 않다
phpDocumentor가 이러한 요구를 충족시킬 수 없다면 다른 옵션을 탐색 할 수 있습니다.
내가 틀렸다고 정정하되, 양봉장이 개별 필드의 문서화를 허용하지 않는 것처럼 보입니다. 샘플 요청 및 응답 본문 만 표시됩니다. API 테스트 콘솔을 통해 개발자가 전체 작동 샘플을 사용하여 API를 테스트 할 수 있지만 개별 필드의 세부 정보 (예 : 데이터 유형, 선택/필수 및 설명)를 문서화 할 수있는 수단이 필요합니다. –
예, apiary.io는 그런 필요를 지원하지 않습니다. API 콘솔이 없다고 생각하기 때문에 양봉장을 보여 드리며 샘플 API 만 가지고 있습니다. 나는 당신이 [Google API] (https://developers.google.com/youtube/v3/docs/channels/list)와 같은 API 콘솔을 필요로한다고 생각한다. 그러나 API 콘솔이 API 문서화를 지원하지 않으면 WIKI를 사용하여 API에 대한 문서/정보를 만들 수 있습니다. 그리고 나는 내 프로젝트에서 그렇게 해왔다. 그리고 이것이 소스 코드 문서를 사용하는 것보다 낫다고 생각합니다. –