2013-07-26 15 views
7

kullanarak ek parametre görüntüleniyor ServiceStack kullanarak swagger'da doğru notları görüntülemeyle ilgili sorunlar yaşıyorum.Swagger UI ServiceStack

Verilen bu yapısı:

[Route("/Widget/{WidgetId}", Summary = "Updates a widget by id", Verbs = "POST", 
    Notes = "Updates a widget by id.")] 
    public class UpdateReqWidget : IReturnVoid 
    { 
     [ApiMember(Name = "WidgetId", Description = "The id of widget to delete.")] 
     public int WidgetId { get; set; } 
    } 

    public class WidgetService 
    { 
     public void Put(UpdateReqWidget req) 
     { 
      //do code here 
     } 
    } 

Bu üretiyor: Swagger UI Error

Ben parametreleri liste sadece WidgetId olması beklenebilir, ancak WidgetId ve UpdageReqWidget, istek için sınıf adını görüntüleyen. herhangi bir fikrim yanlış ne yapıyorum?

DÜZENLEME: ServiceStack ve ServiceStack.API.Swagger için 3.9.55 sürümlerini kullanıyorum. Şablonlarımızı ihtiyaçlarımıza daha iyi uyacak şekilde değiştirdim.

+0

Hangi ServiceStack ve ServiceStack.Api.Swagger sürümünü yüklediniz? Açıkladığınız davranış, yeni bir sürüm gibi görünüyor, ancak ekran görüntüsü, Swagger UI öğelerinin daha eski bir sürümünü gösteriyor. Her ikisinde de 3.9.55 kullanarak –

+0

. Veri türü davranışını yapmak için swagger şablonlarını değiştirdim, böylece bir tür gövdesi olduğunda, "ayrıntıları tıkla" yı ve veri yapısını size vermenizi sağlar. –

cevap

6

Swagger UI'de otomatik olarak istek gövdesi parametresi oluşturmak için recent addition to ServiceStack.Api.Swagger bulunmaktadır. DTO isteğinin yol veya sorgu parametresi olarak atanmış hiçbir özelliğinin bulunmadığı bir kenar durumu olduğunu düşünüyorum, burada sizin durumunuzda olduğu gibi, kod yine de bu UpdateReqWidget istek gövdesi parametresini üretecektir, ancak boş bir nesne olacaktır. Çalım.

+0

Cevabınız için teşekkür ederiz. Normalde güncelleme talepleri için muhtemelen bir int veya getiri boşluğu içinde geçmeyecektim. Bu aynı zamanda DELETE fiilinde de (problemi bulduğum yer) aynı zamanda bir kenar durumu olacağımı sanmıyorum ... benzersiz bir kimliğe dayanan bir kaydı sileceksin. Bunun için kolay bir düzeltme var mı? –

+0

Bunun, geçerli ServiceStack koduyla DELETE fiilinde gerçekleşmesi doğrudur. Görünüşe göre bazı gelişmeler olabilir. –

+0

Kısacası, bunu kutudan çözemediğimi mi söylüyorsun? Eğer bu doğruysa, bir çözüm bulmaya çalışabilirim. –