簡體   English   中英

ServiceStack對象參數未通過Swagger-UI傳遞給服務

[英]Servicestack object parameter not getting passed to service with Swagger-UI

我的服務模式:

[Route("/customer/{CustomerId}/creditcardtoken/{CanLookup}", "POST")]
public class CreditCardToken : IReturn<CreditCardTokenResponse>
{
    [ApiMember(ParameterType = "path", DataType = "string", IsRequired = true, Verb = "POST")]
    public string CustomerId { get; set; }
    [ApiMember(ParameterType = "path", DataType = "boolean", IsRequired = true, Verb = "POST")]
    public bool CanLookup { get; set; }
    [ApiMember(ParameterType = "body", DataType = "CreditCard", IsRequired = true, Verb = "POST")]
    public CreditCard CreditCard { get; set; }
}

public class CreditCard
{
    public short CreditCardTypeId { get; set; }
    public string NameOnCard { get; set; }
    public string CardNumber { get; set; }
    public string Expiration { get; set; }
    public string PostalCode { get; set; }
}

服務接口沒有任何東西(我在返回null上設置了一個斷點):

public class CreditCardTokenService : Service
{
    public CreditCardTokenResponse Post(CreditCardToken request)
    {
        return null;
    }
}

在撰寫此問題(不是.Net Core)時使用最新版本的servicestack for .Net 4.6.2。

當我填充Swagger-UI中的字段時,CreditCard對象不會通過,它只是null。 不確定我缺少什么,CustomerId和CanLookup確實可以通過。 我嘗試在CreditCard類上設置DataContract / DataMember。

在此輸入圖像描述

您的請求DTO與聲明的​​Swagger架構不匹配, CreditCard不是主體,它只是具有復雜類型值的參數。 整個CreditCardToken請求DTO預計將作為HTTP POST請求的JSON主體POST,而此定義僅發布CreditCard JSON主體。 其他參數正在通過,因為它們是在請求的路徑信息上發送的,即它們不是在正文中發送的。

暫無
暫無

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

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