Page History
Info |
---|
요구사항
|
준비하기
Step0-프로젝트 생성
Code Block | ||||
---|---|---|---|---|
| ||||
namespace MicroAKKAWebService { class Program { static void Main(string[] args) { } } } |
...
Nuget 설치 관리자로부터, 위 패키지를 설치를 합니다.
Step2- 웹서비스 시작 클래스 작성
Code Block | ||||
---|---|---|---|---|
| ||||
using Owin;
namespace MicroAKKAWebService
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
app.UseNancy();
}
}
} |
Code Block | ||||
---|---|---|---|---|
| ||||
using Microsoft.Owin.Hosting;
namespace MicroAKKAWebService
{
class Program
{
static void Main(string[] args)
{
var url = "http://+:8080";
using (WebApp.Start<Startup>(url))
{
Console.WriteLine("Running on {0}", url);
Console.WriteLine("Press enter to exit");
Console.ReadLine();
}
}
}
} |
콘솔서비스를 실행한후, 웹브라우져에 localhost:8080 접근시 위와같은 화면을 볼수 있으면 성공입니다.
여기까지가, 웹서비스 기본 Empty 프로젝트를 만들었으며 이제 살을 붙여
라우터정의, Get/POST처리등이 가능하도록 기능추가를 해보겠습니다.
Info |
---|
만약 실행이 안되면, +(모든도메인)에 대해 웹서비스를 바인딩할 권한이 없는것이기때문에 커멘드 콘솔에서 다음과 같은명령어로 허용을 해줍니다.
|
Step3- Root(Home) 라우터 설정
Code Block | ||||
---|---|---|---|---|
| ||||
using System;
using System.IO;
using System.Threading;
using System.Collections.Generic;
using System.Linq;
using Nancy;
using Nancy.Owin;
namespace MicroAKKAWebService
{
public class HomeModule : NancyModule
{
public HomeModule()
{
Get["/"] = x => {
var env = this.Context.GetOwinEnvironment();
var requestBody = (Stream)env["owin.RequestBody"];
var requestHeaders = (IDictionary<string, string[]>)env["owin.RequestHeaders"];
var requestMethod = (string)env["owin.RequestMethod"];
var requestPath = (string)env["owin.RequestPath"];
var requestPathBase = (string)env["owin.RequestPathBase"];
var requestProtocol = (string)env["owin.RequestProtocol"];
var requestQueryString = (string)env["owin.RequestQueryString"];
var requestScheme = (string)env["owin.RequestScheme"];
var responseBody = (Stream)env["owin.ResponseBody"];
var responseHeaders = (IDictionary<string, string[]>)env["owin.ResponseHeaders"];
var owinVersion = (string)env["owin.Version"];
var cancellationToken = (CancellationToken)env["owin.CallCancelled"];
var uri = (string)env["owin.RequestScheme"] + "://" + requestHeaders["Host"].First() +
(string)env["owin.RequestPathBase"] + (string)env["owin.RequestPath"];
if (env["owin.RequestQueryString"] != "")
uri += "?" + (string)env["owin.RequestQueryString"];
return string.Format("Hello WebService {0} {1}", requestMethod, uri);
};
}
}
}
|
마이크로 rest서비스를 위해서 이것만 있으면 충분합니다.
웹소켓및 더 풍부한 기능을 넣고 싶을시 아래를 참고하세요
Link: https://github.com/NancyFx/Nancy/wiki/Documentation
Link : https://github.com/biofractal/Nancy-SignalR-Canonical-Chat
Step4-Akka Nuget Install
마지막으로, 우리의 마이크로 웹서비스에 , 필요한 akka를 추가 인스톨을 합니다.