以前、asp.netなんもわからん状態でC#でWeb APIチックなものを作ってみたくて、Nancyを触ってみたことがあった。
当時のWebAppはもう処分しちゃったけど。
NancyでHello Worldからデプロイまでしてみる - atelier:mitsuba
で、asp.netは.net coreになって、asp.net coreになって、久々にNancyやろうと思ったら全然動かない。
ってかビルドも通らない。
色々調査した結果こう書けばいいってのが分かったので、備忘録がてらメモしとく。
まずは .NETStandard 2.0で使えるNancyをnugetでインストールする。
Cross-Origin Resource Sharingの設定とNancyを使うよーをStartup.csに書く。
今回はなんでもおっけーなので、この2箇所を追加。
public class Startup { public void ConfigureServices(IServiceCollection services) { services.AddRouting(option => option.LowercaseUrls = true); //ここと services.AddCors(); } public void Configure(IApplicationBuilder app) { //ここ app.UseCors(builder => { builder.AllowAnyOrigin(); }); app.UseOwin(pipeline => pipeline.UseNancy()); //まで } }
で、最後にAPIを作っていく。
適当なcsを作る。今回はApiModule.csにした。
ポイントは、NancyModuleを継承するところ。
public sealed class ApiModule : NancyModule { public ApiModule() { //ここの書き方が変わったみたい。 //ルートにアクセスすると文字列が返ってくるだけのAPI風なやつ Get("/", args => "Hello api.nameless."); } }
実行するとこんなかんじ。
https://api.name-less.space/