2017-11-15 3 views
0

Swagger API 정의를 C# .NET 클라이언트 코드로 변환 한 경험이 많은 사람이 있습니까?Swagger API 정의에서 C# 클라이언트 코드의 기본 인수 값을 추가하는 방법

대부분 Swagger Editor이 정상적으로 작동하지만 일부 호출의 경우 생성 된 코드에 필수 인수가 많이 포함되어 있습니다. 예 (단지 설명을위한 절단 인수 목록) :

GetCustomers(bool? includeDeceased, string postalCode, string id, string dateAdded) 

우리는 명시 적으로 널 (null) 인수를 제공하는 것을 피하기 위해 디폴트 값으로 정의 할 수 생성 된 매개 변수 목록을하고 싶습니다. 이 같은 일이 :

GetCustomers(postalCode: "12345") 

보다는 :

GetCustomers(includeDeceased: null, postalCode="12345", id: null, dateAdded: null) 

우리는 자신감 호출 정의 곳으로 "default": null를 추가하려고했습니다

GetCustomers(bool? includeDeceased = null, string postalCode = null, int? id = null, string dateAdded = null) 

이것은 우리가 다음 전화를 걸 수 있습니다 적절하지만 원하는 코드가 생성되지는 않습니다 (실제로 변경되지 않으므로 지원되지 않을 수도 있음).

우리는 코드를 최신 API 정의로 쉽고 빠르게 업데이트 할 수 있도록 피하고 싶지 않은 결과 클라이언트 코드를 수동으로 수정하는 것보다는 조금 꼼꼼합니다.

+0

나는 API를 소유하고 개발했다고 가정하고 변경할 수 있습니다. 그렇다면이 SO 항목을보고 yaml을 만들어 매개 변수가 nullable이며 기본값 (응답에 대한 주석 참조)과 함께 만들 수있는 방법을 살펴보십시오. [Swagger에서 Nullable Fields] (https://stackoverflow.com/questions/38139657/nullable-fields-in-swagger-on-node-js/38140597#38140597) –

+0

@FrankFajardo 아니요, 아닙니다. 그러나 Swagger 정의에 대한 수정을 요청하거나 필요할 경우 스크립트 변경을 요청할 수 있습니다. 하지만 문제는 실제로 'Swagger Editor'CsharpDotNet2 클라이언트 코드 생성기입니다.'csharp '가 예상대로 작동합니다. 아래 내 대답을 참조하십시오. – SteveCinq

답변

1

음, Swagger Editor CsharpDotNet2 클라이언트 코드 생성기가 여기에 있습니다.

은 그냥 늪지 표준 CSHARP 클라이언트 코드 생성기를 시도하고 "required": true 표시되지 않은 모든 인수에 = null을 추가했다.

그래서 수동으로 CsharpDotNet2 생성기를 편집하거나 가능한 경우 csharp를 사용하는 것 같습니다. 당신이 궁금해하는 경우

UPDATE 그리고는, 그것은 CSHARP 발생기는 .NET 4.5을 대상으로 한 새로운 실제로 것으로 나타났다. 나는 누군가가 이름에 "DotNet"을 가지고 있고 다른 하나가 그렇게하지 않는다고 생각하고있었습니다. 바보 나.