[英]Why does Visual Studio 2017 fail to generate REST API client for Swagger Petstore?
我正在使用Swagger / OpenAPI文檔/規范在C#中生成 REST API客戶端代碼,但我遇到了幾個問題。
最值得注意的是 - 當嘗試使用Swagger.io Petstore示例作為起點時:
在VS 2017中使用VS 2017 Add > REST API client
選項,我沒有生成任何代碼 - 而是顯示錯誤:
生成客戶端代碼並添加到項目已啟動
使用以下參數為REST API生成客戶端代碼:
REST API名稱:OpenApiClientClient,Base命名空間:OpenApiClient,元數據文件路徑:C:\\ Users \\ Marc \\ AppData \\ Local \\ Temp \\ WebToolsAutoRest \\ OpenApiClientClient \\ 201807162213351660 \\ swagger.json
[Info] AutoRest Core 0.16.0.0
[Info]初始化建模器。
[Info]初始化建模器。
[信息]解析swagger json文件。
[Info]從swagger模型生成客戶端模型。
[致命]生成客戶端模型時出錯:不支持集合格式“multi”(在參數“status”中)。
例外:嘗試為REST API添加客戶端時,代碼生成期間出錯
生成客戶端代碼並添加到項目失敗
添加REST API客戶端失敗
因此,如果Swagger示例應用程序不兼容 - 其他人將如何? (不幸的是,我嘗試了其他幾個,結果相同)。
這有什么不對? 我錯過了什么,我是否需要為VS 2017添加一些額外的工具才能使其工作?
更新 :
好的,所以我現在嘗試直接使用npm安裝Autorest:
npm install -g autorest
這似乎工作 - 沒有顯示錯誤或任何事情。
但是嘗試運行Autorest - 使用一組命令行參數,甚至只是自己運行 - 會導致錯誤:
AutoRest -CodeGenerator CSharp -Modeler Swagger
-Input https://petstore.swagger.io/v2/swagger.json
-Namespace Services.UserServiceClient -OutputDirectory d:\projects
-AddCrendentials true
要不就
AutoRest <kbd>Enter</kbd>
結果是:
AutoRest代碼生成實用程序[版本:2.0.4280; 節點:v9.9.0]
(C)2018 Microsoft Corporation。
https://aka.ms/autorest
失敗:
錯誤:無法從C:\\ Users \\ Marc.autorest \\ @ microsoft.azure_autorest-core @ 2.0.4280 \\ node_modules \\ @ microsoft.azure \\ autorest-core啟動AutoRest Core
錯誤:無法從C:\\ Users \\ Marc.autorest \\ @ microsoft.azure_autorest-core @ 2.0.4280 \\ node_modules \\ @ microsoft.azure \\ autorest-core啟動AutoRest Core
在main(C:\\ Users \\ Marc \\ AppData \\ Roaming \\ npm \\ node_modules \\ autorest \\ dist \\ app.js:232:19)at at
還有什么想法?
嘗試運行autorest --reset
。 這適用於具有節點v8.12.0的Windows。 在運行該命令之前,我遇到了同樣的錯誤。
我也有這個問題所以我為它構建了一個名為REST API客戶端代碼生成器的工具 。 我在團隊中工作,我們使用AutoRest,NSwag和Swagger Codegen等工具來生成我們的REST API客戶端,它總是讓我感到惱火的是,Visual Studio中的“添加新的REST API客戶端...”工具並不總是有效在重新生成客戶端的時候非常麻煩
這會將OpenAPI規范文件(Swagger.json)添加到項目中並設置自定義工具,以便每次對其進行更改時,都會重新生成REST API客戶端代碼。 您還可以右鍵單擊Swagger.json文件並切換代碼生成器
我構建的工具主要供個人使用,也可以在我的團隊中使用,但是如果你發現它很有用並認為它缺少你真正需要的東西那么請伸出手
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.