用 C# 实现一个简单的 Rest Service 供外部调用

Posted 盛开的雨季

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用 C# 实现一个简单的 Rest Service 供外部调用相关的知识,希望对你有一定的参考价值。

用 C#  实现一个简单的 Restful Service 供外部调用,大体总结为4点:

  • The service contract (the methods it offers).
  • How do you know which one to access from the URL given (URL Routing).
  • The implementation of the service.
  • How you will host the service.

 

详细的基本步骤如下所示: 

1):工程结构(Class Library Project)

 

2): IRestDemoService.cs

复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
using System.ServiceModel.Web;

namespace EricSunRestService
{
    [ServiceContract(Name = "RestDemoServices")]
    public interface IRestDemoServices
    {
        [OperationContract]
        [WebGet(UriTemplate = Routing.GetClientRoute, BodyStyle = WebMessageBodyStyle.Bare)]
        string GetClientNameById(string Id);
    }


    public static class Routing
    {
        public const string GetClientRoute = "/Client/{id}";
    }
}
复制代码

 

3):RestDemoService.cs

复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
using System.ServiceModel.Activation;

namespace EricSunRestService
{
    [ServiceBehavior(InstanceContextMode = InstanceContextMode.Single, ConcurrencyMode = ConcurrencyMode.Single, IncludeExceptionDetailInFaults = true)]
    [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
    public class RestDemoServices : IRestDemoServices
    {
        public string GetClientNameById(string Id)
        {
            string ReturnString = "HaHa id is: " + Id;

            return ReturnString;
        }
    }
}
复制代码

 

4):Host Service 工程结构 (Console Application)

 

5):Program.cs

复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using EricSunRestService;
using System.ServiceModel.Web;

namespace EricSunHostService
{
    class Program
    {
        static void Main(string[] args)
        {
            RestDemoServices demoServices = new RestDemoServices();
            WebServiceHost _serviceHost = new WebServiceHost(demoServices, new Uri("http://localhost:8000/DemoService"));
            _serviceHost.Open();
            Console.ReadKey();
            _serviceHost.Close();
        }
    }
}
复制代码

 

6):运行Host程序,在浏览器中输入对应Service的Url

 

 

更多信息请看如下链接:

http://www.progware.org/Blog/post/A-simple-REST-service-in-C.aspx 

以上是关于用 C# 实现一个简单的 Rest Service 供外部调用的主要内容,如果未能解决你的问题,请参考以下文章

使用传递json c#的Rest Service [重复]

如何在 WCF Rest Service 中传递多个参数:C# 中的字符串和流

如何在 WCF Rest Service 中传递多个参数?

如何写一个简单的Web Service

Java Rest Service POST 不同意 InnerClasses 属性

AngularJS、REST、C# 服务、405 - 不允许发布方法