簡體   English   中英

生成 OpenAPI 客戶端時如何重用類?

[英]How to reuse classes when generating an OpenAPI client?

假設我定義了這個 class:

public class Animal
{
   public int RegId {get;set;}
   public string Name {get;set;}
}

我需要將它公開到我系統的遠程部分(例如,另一個位置的客戶端應用程序),我決定使用 OpenAPI 進行通信。

controller 代碼類似於:

[HttpGet("GetLivingCargo")]
public async Task<IEnumerable<Animal>> GetLivingCargo()
{
    return await pFacade.GetLivingCargo();
}

Swagger 生成的文檔都很好。 當我生成要在遠程應用程序中使用的 API 客戶端時,我總是復制 class(所以我原來的 class 和生成的客戶端完全相同的類)。

我怎樣才能避免它,而不必自己手動編寫 API 客戶端來使用我原來的 class?

最后我找到了一種方法讓 NSwagStudio 重用我的 Model 類。

一步步:

  1. 獲取 OpenAPI 規范 URL
  2. 讓它創建一個本地副本以仔細檢查規范是否正確
  3. 在屏幕的輸出部分標記“C# 客戶端”(現在無法放置圖像,因為防火牆阻止了 ImgUr.com)
  4. 在設置選項卡上,需要更改兩個配置:
    • Additional Namespace Usages:放置你想重用的類的命名空間列表(逗號分隔)
    • 生成 DTO 類型: UNCHECK
  5. 產生。

對於那些不想要全有或全無方法的人,選中生成 DTO 類型,您可以通過在排除類型名稱配置設置中填寫要排除的(逗號分隔的)類型列表來排除某些類型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM