缺少ServiceStack元数据描述

时间:2013-02-12 04:44:20

标签: 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 -->
        ...

1 个答案:

答案 0 :(得分: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; }
}