[英]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.