2016-12-05 2 views
6

swagger codegen 코드 생성기를 사용하여 typescript2/angular2 언어를 사용하여 클라이언트를 생성했습니다.swagger typescript/angular2 클라이언트

생성 된 내용과 이슈를 사용하는 방법을 파악할 수 없습니다.

알아 두어야 할 사항으로, 머리말은 create 방법 (userpasswd 매개 변수)의 요청에 포함되어 있지 않습니다. 그렇지 않으면 요청이 어떻게 이루어지는 지 이해할 수 없습니다. 내가 map 메서드 콜백 안에 중단 점을 설정했는데 도달하지 못했습니다.

UsersApi.ts을 살펴볼 수 있습니다.

+3

, 최선을, 아무도 generat라는를 사용하는 방법을 문서화하는 모든 작업을 수행하지 않았다 에드 앵글 2 클라이언트. Swagger-codegen 문서에 따르면 다운로드 한 클라이언트에 포함 된 README를 참조해야합니다. README 파일이 없으므로 필자는 문서 작성을 원한다는 단순한 추측을하고 있습니다. (주제를 고려할 때 유쾌한 아이러니 컬 함 - 문서 자동화에 도움이되는 소프트웨어는 문서 자체가 없음). – pspahn

+0

만약 당신이 swagger 2.2.2를 사용했다면 이것은 도청 당했고, 최신 2.2.3 버전은 생성 된 코드를 상당히 바꿉니다. 나는 계속하기 전에 그것을 시도 할 것이다. – PeterS

답변

0

현재 프로젝트에서 codegen이 생성 한 클라이언트 (typescript/ng2)를 사용하고 있습니다.

먼저 생성 된 출력을 가져 와서 내 프로젝트에 배치하십시오. 이 작업을 자동화 할 수 있습니다. API가 얼마나 바뀔 것으로 예상되는지에 따라 다릅니다. 나는 'app/core/api'에 광산을 넣었고, 여기에는 api 폴더와 model 폴더, 그리고 여섯 개 정도의 다른 파일들이 포함되어있다. 및 .swagger-codegen 폴더도 있습니다 (비록 이것이 100 % 확실하지는 않습니다).

  1. 생성 된 API의 용도를 줄이기 위해 서비스를 만들어서 변경된 경우 구성 요소를 분리합니다. 그래서 당신의 예를 들어, 내 구성 요소에 의해 소비 될 내 자신의 user.service.ts를 만들 것입니다.
  2. UserService 클래스에서 생성 된 코드에서 공용 API를 가져와야합니다. 이것은 대개 api/index.ts에 있거나 그냥 : import *로 'app/core/api'에서 클라이언트로; 단일 API 만있는 경우 더 간단합니다. 여러 개가있는 경우 api/api.ts/
  3. 에서 배열로 내보내집니다.
  4. API를 사용하려면 헤더 나 매개 변수 또는 그 중 하나를 만들 필요가 없습니다. 생성 된 서비스는 호출이 필요로하는 값을 취해야하며 메소드는 json 요청 및 응답 객체를 처리합니다. 모델 폴더와 서비스 TS 자체를 살펴보면 좀 더 명확 해집니다. 귀하의 예를 들어 당신은 단 두 가지 방법이 있습니다. 만들고 존재합니다. UserService에서 CreateUser라는 메서드를 만들거나 원하는 메서드를 만들고 그 안에 api 메서드 create를 호출합니다. username 문자열과 password 문자열을 전달하십시오. 그게 다야. API 호출이 반환하는 것이 무엇이든지 관찰 할 수있는 값을 반환합니다 (API 코드의 models 디렉토리에 정의 된 typescript 객체로 json 응답을 변환합니다.)
  5. 예를 들어 사용자 정의 객체를 사용하고있는 것처럼 보이지 않습니다 create 메서드는 Observable < {}>을 반환하기 때문에 사용자 클래스를 호출하고 사용자 클래스 인스턴스에 응답을 매핑 한 다음이를 사용하여 뷰 템플릿에 바인딩 할 수 있습니다. 다시 API 세부 정보와 분리됩니다.
  6. 내가 말할 수있는이 도움이

희망. 내가 더 구체적인 질문에 대한 답변을 드릴 것입니다. 2017년 2월의로

관련 문제