Swagger PHP 사용 안내서

6047 단어 swaggerphp
먼저 Swagger 가 무엇 인지, Swagger 의 사용 목적 은 인터페이스 API 의 다양한 정 의 를 편리 하고 아름 답 게 보 여 주 는 것 입 니 다. API 문 서 를 생 성 하 는 것 은 매개 변수, 경로 등 을 포함 합 니 다. 가끔 백 엔 드 에서 API 의 매개 변수 나 다른 설정 을 바 꾸 었 습 니 다. 전단 에서 이 Swagger UI 를 직접 보면 프로젝트 관리 와 팀워크 를 편리 하 게 할 수 있 습 니 다.
홈 페이지:http://swagger.io/
매개 변수 문서:https://github.com/swagger-ap...
이 물건 을 어떻게 사용 합 니까?말하자면 Swagger 세트 를 설치 한 다음 에 API 코드 에 주석 을 쓰 고 Swagger 백 엔 드 프로그램 으로 API 를 뛰 어 다 니 며 주석 을 추출 하고 json 파일 을 만 든 다음 에 Swagger 전단 을 통 해 JSON 데 이 터 를 미화 하고 정리 하 는 것 입 니 다.
Swagger 를 사용 하려 면 두 개의 물건 을 설치 하고 앞부분 을 표시 해 야 합 니 다.백 엔 드, JSON 생 성
1, 설치 전단
swagger - ui 다운로드
1git clone https://github.com/swagger-ap...다운로드 후 dist 디 렉 터 리 를 찾 아 index. html 를 열 어 그 중의 url 을 자신의 것 으로 바 꿉 니 다. 예 를 들 어http://localhost/yii2/swagger...
$(function () {
  var url = window.location.search.match(/url=([^&]+)/);
  if (url && url.length > 1) {
    url = decodeURIComponent(url[1]);
  } else {
    url = "http://localhost/yii2/swagger-docs/swagger.json";
  }

또한 인터페이스 를 중국어 로 조정 하여 js 파일 의 주석 을 놓 으 면 됩 니 다.
123 < br / > < / script > -- > < br / > < script src =' lang / zh - cn. js' type = 'text / javascript' / > 그리고 URL 을 열 면 전단 화면 을 볼 수 있 습 니 다. 내용 이 없 을 것 입 니 다. swagger. json 이 생 성 되 지 않 았 기 때문에 생 성 된 URL 이 작 동 하 므 로 전단 에 직접 방문 하면 됩 니 다 < / p >

http://localhost/yii2/swagger...


< h2 > 2, 백 엔 드 설치 < / h2 >

1
git clone https://github.com/zircote/sw...< br / > 저 는 yii 2 를 사용 하기 때문에 coposer 를 사용 하여 설치 하 였 습 니 다 < / p >
< p > "require": {"zircote / swagger - php": "*"} < br / > 이후 coposer update 또는 직접 명령 행, 자세 한 내용 은https://github.com/zircote/sw...


< p > DCdeMacBook - Pro: yii 2 DC $phop composer. phar require zircote / swagger - phop < br / > 루트 디 렉 터 리 에 swagger - phop 을 두 고 공식 적 으로 제공 하 는 Examples 로 테스트 json < / p > 를 생 성 합 니 다.
< p > cd swagger - php < br / > mkdir doc < br / > php swagger. phar Examples - o doc < br / > "- o" 앞 에 API 소스 디 렉 터 리 를 대표 합 니 다. 즉, 어떤 디 렉 터 리 의 API 문 서 를 만 들 고 싶 은 지, 프로젝트 코드 디 렉 터 리 입 니 다. "- o" 뒤 에는 어느 path < / p > 를 생 성 합 니까?
< p > 저 는 swagger - php 아래 에 들 어가 지 않 았 습 니 다. 직접 명령 행 을 쳤 습 니 다. 임의의 경로 에서 json 생 성 작업 을 수행 할 수 있 습 니 다 < / p >
< p > php / Users / DC / www / yii 2 / vendor / zircote / swagger - php / bin / swagger / Users / DC / www / yii 2 / vendor / zircote / swagger - php / Examples - o / Users / DC / www / yii 2 / swagger - docs < br / > 그리고 다시 보기http://localhost/yii2/swagger... API 문서 생 성 < / p >
< p > 준비 작업 이 다 되 었 으 니 코드 주석 을 쓰 면 됩 니 다. 주석 은 어떻게 씁 니까? 공식 문 서 를 참고 하 세 요.http://zircote.com/swagger-ph...


< p > 예 를 들 어 Model 의 < / p >

/**


  • @SWGModel(
  • id="vps",
  • required="['type', 'hostname']",
  • @SWGProperty(name="hostname", type="string"),
  • @SWGProperty(name="label", type="string"),
  • @SWGProperty(name="type", type="string", enum="['vps', 'dedicated']")
  • )


*/
class HostVps extends Host implements ResourceInterface
{

// ...

}


< p > 예 를 들 어 Controller 의 < / p >

/**


  • @SWGResource(
  • basePath="http://skyapi.dev",
  • resourcePath="/vps",
  • @SWGApi(
  • path="/vps",
  • @SWGOperation(
  • method="GET",
  • type="array",
  • summary="Fetch vps lists",
  • nickname="vps/index",
  • @SWGParameter(
  • name="expand",
  • description="Models to expand",
  • paramType="query",
  • type="string",
  • defaultValue="vps,os_template"
  • )
  • )
  • )
  • )


*/
class VpsController extends Controller
{

 // ...

}


< p > 스 와 거 를 Laravel 에 통합 하 는 통합 도 보 았 습 니 다. Github 주 소 는 이것 입 니 다.https://github.com/slampenny/...하지만 이 건 git clone 방식 으로 할 수 없습니다. 설정 이 너무 번 거 롭 습 니 다. coposer 를 사용 하 세 요 < / p >
< p > composer require "jlapp / swaggervel: dev - master" < br / > 다음 JlappSwaggervelSwaggervelServiceProvider 는 app / config / app. php 의 providers 배열 맨 위 에 이 문장 을 복사 한 다음 < / p >
< p > php artisan vender: publish < br / > 이 단 계 는 관련 파일 을 swagger ui 를 포함 하여 laravel 프레임 워 크 Public 아래로 복사 합 니 다. OK, 다 되 었 습 니 다. 루트 디 렉 터 리 에 접근 해 보 세 요. 예 를 들 어 www. 1. com / api - docs 를 사용 해 보 세 요. 인터페이스 가 나타 나 면 성공 합 니 다! 명령 으로 laravel 의 길 을 보지 않 았 습 니 다. < / p >
< p > php artisan route: list < br / > 맨 위 에 있 는 두 가 지 는 방금 추 가 된 경로 입 니 다. 페이지 를 새로 고침 할 때 공백 이 발견 되 지 않 습 니까? json 을 만 들 려 면 @ SWG 의 설명 을 써 야 합 니 다. laravel 의 app 디 렉 터 리 아래 에 있 는 모든 파일 을 다 쓰 면 됩 니 다. 보통 model 과 contrller 만 쓰 면 됩 니 다. 이 플러그 인 은 이 디 렉 터 리 를 스 캔 하여 json 파일 을 생산 합 니 다. < / p >

=====================================


< p > API 코드 주석 을 바 꿀 때마다 json 파일 을 수 동 으로 생 성 합 니까? 너무 번 거 롭 습 니 다. controller 를 썼 습 니 다. swagger - ui 에 접근 할 때마다 이 controller 는 json 이 ui 페이지 로 이동 합 니 다. < / p >

$b2broot = Yii::getAlias('@b2broot');
$swagger = \Swagger\scan($b2broot.'/myapi');
$json_file = $b2broot.'/swagger-docs/swagger.json';
$is_write = file_put_contents($json_file, $swagger);
if ($is_write == true) {
$this->redirect('http://localhost/yii2/swagger...');
}


< p > 참조https://www.cnblogs.com/derrc...




좋은 웹페이지 즐겨찾기