2013-02-12 5 views
2

Dans un exemple de code ci-dessous la page de métadonnées ne fait jamais la description spécifiée dansdescriptions de métadonnées ServiceStack manquantes

[Description("GET account, all or by list of groups or by list of logins")] 

Y at-il une configuration spéciale qui doit être réglé afin que les descriptions d'apparaître dans les pages de métadonnées ?

code:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.ComponentModel; 
using ServiceStack.ServiceHost; 
using System.Runtime.Serialization; 
using ServiceStack.WebHost.Endpoints; 

namespace ConsoleApplication2 
{ 
    public class User 
    { 
     public User() 
     { 

     } 
     public int login; 
     public string group; 
     public string name; 
    } 

    [Description("GET account, all or by list of groups or by list of logins")] 
    [Route("/accounts")] 
    public class Accounts : IReturn<List<User>> 
    { 
     public string[] groups { set; get; } 
     public int[] logins { set; get; } 

     public Accounts() { } 

     public Accounts(params int[] logins) 
     { 
      this.logins = logins; 
     } 

     public Accounts(params string[] groups) 
     { 
      this.groups = groups; 
     } 
    } 

    public class Host : AppHostHttpListenerBase 
    { 
     public Host() : base("Test", 
          typeof(Accounts).Assembly) 
     { 

     } 

     public override void Configure(Funq.Container container) 
     { 
      SetConfig(new EndpointHostConfig { 
       EnableFeatures = Feature.All 

      }); 
     } 
    } 

    public class Servce : IService 
    { 
     public object Get(Accounts request) 
     { 
      return new List<User>(){new User()}; 
     } 

    } 

    class Program 
    { 
     static void Main(string[] args) 
     { 
      var host = new Host(); 
      host.Init(); 
      host.Start("http://+:12345/"); 

      Console.ReadLine(); 

     } 
    } 
} 

Navigation vers http://localhost:12345/json/metadata?op=Accounts produit

<body> 
    <a id="logo" href="http://www.servicestack.net" title="servicestack"></a> 
    <h1>Test</h1> 

    <form> 
    <div> 
     <p><a href="/metadata">&lt;back to all web services</a></p> 
     <h2>Accounts</h2> 



     <div class="example"> 
     <!-- REST Examples --> 
     ... 

Répondre

4

Dans un recent release of ServiceStack, [Description] a été délaissé au profit de [Api] et [ApiMember] qui sont également utilisés dans ServiceStack's Swagger support.

Ceci est maintenant un exemple d'un service entièrement annotée:

[Api("Service Description")] 
[Route("/swagger/{Name}", "GET", Summary = @"GET Summary", Notes = "GET Notes")] 
[Route("/swagger/{Name}", "POST", Summary = @"POST Summary", Notes = "POST Notes")] 
public class MyRequestDto 
{ 
    [ApiMember(Name="Name", Description = "Name Description", 
       ParameterType = "path", DataType = "string", IsRequired = true)] 
    public string Name { get; set; } 
} 
+0

Merci encore rapide question de suivi: Qu'est-ce que l'annotation ApiMember faire? parce que je ne vois aucune différence dans les métadonnées quand je l'utilise. Seul l'attribut Api semble ajouter au html, même avec Résumé et Notes sur Api – Dmitry

+1

Il est utilisé dans Swagger, mais pas dans les pages '/ metadata' - il le sera bientôt. – mythz

+0

@mythz Plus d'intérêt, si vous vouliez POSTER ceci comme un type plus complexe, est-ce que parametertype = "body" et datatype = "MyrequestDTO"? – Junto

Questions connexes