2013-05-03 9 views
3

Swagger-PHP를 사용하여 JSON 파일을 생성하려고하는데 자동 문서 용 Swagger-UI와 함께 사용할 수 있습니다. Swagger-PHP Swagger-UI 용 JSON 파일 생성 용

내가 링크를 시도 : -

https://github.com/zircote/swagger-php이 또한 내가 http://zircote.com/swagger-php/installation.html

하지만 내 하드 행운에이 문서와 함께 주위에 작업을 시도, 나는 그것을 구현 드릴 수 없습니다.

작곡가를 올바르게 설치할 수 있습니다. Swagger-PHP 번들도 올바르게 설치되었습니다.

하지만 문제는 내가 제공 한 테스트 예제를 사용하거나 이해할 수 없다는 것입니다.

누군가가 주변에서 일했으면 도움주세요!

미리 감사드립니다.

+0

안녕하세요, 자세한 내용을 알려주세요. 당신이 겪고있는 오류와 마찬가지. 도움이 될 것입니다. –

답변

10

당신은 당신의 코드에서 모델 예를 주석 일명 의견을 넣어 :

/** 
* @SWG\Model(
* id="vps", 
* required="['type', 'hostname']", 
* @SWG\Property(name="hostname", type="string"), 
* @SWG\Property(name="label", type="string"), 
* @SWG\Property(name="type", type="string", enum="['vps', 'dedicated']") 
*) 
*/ 
class HostVps extends Host implements ResourceInterface 
{ 
    // ... 
} 

컨트롤러 예 :

콘솔에서 다음
/** 
* @SWG\Resource(
* basePath="http://skyapi.dev", 
* resourcePath="/vps", 
* @SWG\Api(
* path="/vps", 
* @SWG\Operation(
* method="GET", 
* type="array", 
* summary="Fetch vps lists", 
* nickname="vps/index", 
* @SWG\Parameter(
*  name="expand", 
*  description="Models to expand", 
*  paramType="query", 
*  type="string", 
*  defaultValue="vps,os_template" 
* ) 
* ) 
* ) 
*) 
*/ 
class VpsController extends Controller 
{ 
    // ... 
} 

: 다음 링크에서 파일을 생성

php swagger.phar ./your-code-source/ -o ./directory-for-output-files 

Swagger UI. 이 정보가 도움이 되었습니까?

실제로,이 설명서는 http://zircote.com/swagger-php/annotations.html이 불완전합니다.

php swagger.phar ./skynode-api/api/ -o ./foo 
Swagger-PHP 0.9.0 
----------------- 
[INFO] Skipping unsupported property: "foo" for @Swagger\Annotations\Property, expecting "name", "description", "type", "format", "items", "uniqueItems", "required", "minimum", "maximum", "enum", "defaultValue", "_partialId", "_partials" in HostVps in /home/kane/some-dir/some-file.php on line 3 

편집 : 그것은 파서 오류에 의존하는 예를 더 나은 자신감 2.0 꽤 좋은 사양을 가지고 on GitHub

BTW, 사용하는 API 사양 파일 (JSON/YAML)을 만들 Swagger Editor를 사용하는 것을 고려 Swagger UI에서. PHP 파일에서 인라인 SWG 문서가 잘못 되었기 때문에 IDE에서 자동 완성 기능을 지원하지 않습니다.

+2

주석에서 Swagger Editor yaml을 사용하여 인라인 문서가 너무 못생긴 경우 멋지지 않습니까? – redgeoff

0

요즘이 일에 분투와 약간의 차이를 참조하고 작업을 진행하게 관리하고 아마도 바로 가기 싶었던 다른 사람 : 나는 이전 모델과이 열거 작업을 먹은

// In the controller 

/** 
* (other swagger stuff like @SWG\Put, etc...) 
* @SWG\Parameter(name="type",in="path",description="project|task", 
*     required=true, type="array",    
*     @SWG\Items(type="string"), 
*     default="project", 
*     enum={"project", "task"}), 
* (next @SWG\Parameter or closing paran, etc) 
*/ 
@SWG \ Items는이 코드를 참조하지만 그 코드를 저장하지 않았다 (나는 주변을 어지럽 쳤다). 나는 심지어 나는 이전에 질문을 upvoted 것을보고 응답을 받아 들였다! 그러나 위의 방법만으로도 현재 작동하도록 할 수 있으며 아무 것도없는 것보다 낫습니다.