私はWebAPIルーティングの背後にある狂気を理解しようとしています。
このようなデータを投稿しようとすると:
curl -v -d "test" http://localhost:8088/services/SendData
404が表示され、次のエラーメッセージが表示されます。
{"Message":"No HTTP resource was found that matches the request URI 'http://localhost:8088/services/SendData'.","MessageDetail":"No action was found on the controller 'Test' that matches the request."}
これが私のテストサーバーのコードです。
public class TestController : ApiController
{
[HttpPost]
public void SendData(string data)
{
Console.WriteLine(data);
}
}
class Program
{
static void Main(string[] args)
{
var config = new HttpSelfHostConfiguration("http://localhost:8088");
config.Routes.MapHttpRoute(
name: "API Default",
routeTemplate:"services/SendData",
defaults: new { controller = "Test", action = "SendData"},
constraints: null);
using (var server = new HttpSelfHostServer(config))
{
server.OpenAsync().Wait();
Console.WriteLine("Press Enter to quit.");
Console.ReadLine();
}
}
}
より一般的には、ASP.NETチームがMapHttpRouteメソッドを非常に混乱させることにしたのはなぜですか。なぜ2つの匿名オブジェクトが必要なのですか....これらのオブジェクトが実際に必要とするプロパティを誰かがどのように知っているのでしょうか?
MSDNはヘルプを提供しません:http://msdn.microsoft.com/en-us/library/hh835483 (v = vs.108).aspx
あなたが私に尋ねれば、動的にタイプされた言語のすべての苦痛は何の利益もありません...