2013-02-12 123 views
2

在元数据页下面给出了一个实例代码永远不会在ServiceStack元数据描述丢失

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

指定的描述是有需要才能被设定描述元数据页面展现了一个特殊的配置?

代码:

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(); 

     } 
    } 
} 

导航到http://localhost:12345/json/metadata?op=Accounts产生

<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 --> 
     ... 

回答

4

recent release of ServiceStack[Description]赞成[Api][ApiMember]其也在ServiceStack's Swagger support使用被废弃。

现在这是一个完全注释的服务的一个例子:

[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

再次感谢 快速的后续问题:什么是ApiMember注解吗?因为当我使用它时,我在元数据中看不到任何区别。只有Api属性似乎添加到html中,与Api上的摘要和注释相同 – Dmitry 2013-02-12 06:00:43

+1

它在Swagger中使用,但不在'/ metadata'页面中 - 将很快应用。 – mythz 2013-02-12 06:03:21

+0

@mythz出于兴趣,如果你想将它作为更复杂的类型发布,那么parametertype =“body”和datatype =“MyrequestDTO”? – Junto 2013-02-22 17:03:02