내 푸른 REST API 응용 프로그램을 발표 이상한 결과를 "모든"레코드(실종 #/정의/도메인 일부를 입력합니다)
1) 취득 방법이있다 예상대로 다음, 그 생성 방법 :
public async Task<HttpOperationResponse<IList<DomainType>>> GetAllDomainObjectsWithOperationResponseAsync(...);
2) Get by id
, Update
, Delete
Create
및 방법에 대해,이 도메인 대신에 오브젝트의 object
생성된다
async Task<HttpOperationResponse<object>> DeleteDomainObjectByIdWithOperationResponseAsync(..)
결과적으로이 Delete, Update, Create 및 GetById 메서드를 사용할 때 서비스가 작동하지 않습니다. 만약 내가 수동으로 각각의 도메인 유형으로 object
을 교체하면 예상대로 작동하지만, 각 서비스가 게시 된 후에 잘못된 코드가 다시 생성됩니다 ...
SwaggerConfig.cs (예 : IncludeParameterNamesInOperationIdFilter
사용)에서 몇 가지 시도했지만, 이 경우에는 도움이되지 않는 것 같습니다.
문제의 원인과 해결 방법에 대한 아이디어가 있습니까?
P. 나는 좀 더 불쾌한 행동을 발견했습니다. DateTime
을 DateTimeOffset?
으로, byte
을 byte[]
으로 만들었지 만, 그걸로 살 수 있습니다. 내가 정기적으로 적절한 도메인 유형에 object
유형을 변경하기 위해 모든 생성 된 코드를 겪고에서 싸우고 싶지 않아 - ...이 경우 컴파일러는 도움이되지 수
편집
@olydis의 의견에 따르면, 생성 된 Swagger 정의 파일에는 반환 형식 정의가 누락되었습니다 (형식 : $ref, "#/definition/domain-type"
).
MVA course Mastering Azure App Service (모듈 4 : Demonstration Integrating Discovery 3:33)은 생성 된 스 래거 정의 파일의 샘플이며이 유형 정의가 있습니다. Swashbuckle에서이 정보를 생성하지 못하게 할 수있는 요인은 무엇입니까? 최신 버전 인 Swashbuckle 버전 5.x.x가 있습니다. Swagger 파일을 올바르게 생성하려면 Swashbuckle에서 도메인 유형이 충족해야하는 전제 조건이 있습니까?
편집 # 2
현재 주위에 작업
수동으로 Swashbuckle 힌트를 줄 수있는 REST API 클라이언트
이것이 자동 복구 문제인 경우 해당 스 거거 파일을 게시하면이 문제를 재현 할 수 있습니다. 또한 Swagger를 자동 생성하는 것처럼 들립니다. Swashbuckle? 그렇다면 태그를 추가하십시오 ;-) 아마 Swagger가 잘못된 Swagger를 생성 할 때 문제가 생길 수 있습니다 - AutoRest는 그 곳에서 설명하는 것을 지원합니다 – olydis
@olydis, 안녕하세요, 감사합니다! swagger 정의 파일에 대한 링크를 추가했습니다. 그리고 Azure REST API 앱을 게시 할 때 genereated됩니다 - 내 프로젝트에'Swashbuckle' nuget 팩을 추가했습니다. 그래서이 Swagger 생성 작업을 수행하고있는 것 같습니다 ... 나는이 swagger/swashbuckle 항목에 익숙하지 않습니다. 그래서 아마도 이것은 쉬운 일입니다 ... 예를 들어 - REST API 클라이언트의 GetPromotionById는 도메인 객체 대신 객체로 생성됩니다. 그러나 흥미로운 점은 - 브라우저에서 느슨하게 놀면이 방법이 효과가 있다는 것입니다. 생성 된 REST API 클라이언트로 작업 할 때만 문제가 발생합니다. – Prokurors
제공 한 Swagger 파일에서 'GetPromotionById'에는 반환 유형 정의가 없으므로 AutoRest는 사용할 도메인 유형을 발명 할 수 없습니다! Swashbuckle에 대한 전문가는 아니지만 서비스를 충분히 자세히 설명하는 Swagger를 생성하지는 않습니다. 또한 'byte [byte]'는 실제로 벨을 울리고, 지난번에 그 문제가 발생했을 때, 그것은 Swashbuckle의 비추천 버전이었습니다! – olydis