1. 程式人生 > >用 C# 實現一個簡單的 Rest Service 供外部調用

用 C# 實現一個簡單的 Rest Service 供外部調用

message [] operation rem adk www span method title

用 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 供外部調用