2017-02-02 4 views
2

ServiceStack Webサービスの文書化にはswagger uiを使用しています。しかし、私はそれらのWebサービス(json)の応答に関する情報を追加する方法を見つけませんでした。だから私のサービスのGET方法は次のようになりますとき: ServiceStackでServicestackを文書化する方法swagger-api(1.2)

public object Get(CustomerData customers) 
    { 
     List<CustomerDAO> customers = DataProvider.GetAllCustomers(); 
     return customers; 
    } 


public class CustomerDAO 
{ 
    // this is important information which needs to be visible in swagger-ui 
    public string Name { get; set; } 
    public string SomeImportantProperty { get; set; }  
    public string AnotherPropery { get; set; } 
    public string AlsoWorthDocumenting { get; set; } 
    // and so on... 
    } 

は、私はそれらのウェブサービスを使用するために不可欠であるドキュメント(威張っ-UI)の各プロパティの短い説明を必要とします。

私はServiceStack 3.9.74を使用していますが、これは最新のServiceStackバージョンにも当てはまります。そうでない場合は、私に知らせてください。

この情報をどうやって得るか、あるいはそうでない場合、私のWebサービスで作業しなければならない開発者にこのような重要な情報を提供する方法を知りました。私はServiceStackの環境で動作する他のアプローチやベストプラクティスも公開しています。

+1

@ stout01の回答が正しいです、あなたのサービスのための専用の応答オブジェクトを作成するためには、以下のアドバイスを強くお勧めします。さらに、ORM(OrmLite?)で使用されているタイプを公開しないようにしてください。データアクセスとAPIのクライアントに公開されているAPIとの間に緊密な結合ができます。これにより、API契約やクライアントを壊さずにデータベースモデルを変更することが非常に難しくなります。 「顧客」を表す別のタイプも作成する必要があります。 –

答えて

3

あなたのServiceStackのバージョンについてはわかりません。最新のバージョンでは、IReturn<ReturnClassHere>にあなたの要求があります。これは、返されたクラスを見てくれるように言います。

だからあなたのこのCustomerDataクラスには、次のようになります。

public class CustomerData : IReturn<List<CustomerDAO>> 
{ 
} 

それはおそらく代わりに返されますあなたの応答のために別のDTOをセットアップする方が良いだろうが、

。たぶん CustomerDataResponseのようなものでしょう。

+0

残念ながら、それは1.2では動作しません。レスポンスのプロパティに 'ApiMember'属性を追加しましたが、嫌な人はそれを受け取っていません。私はこの機能が1.2の一部ではないと思う。 – zlZimon

関連する問題