Below you will find pages that utilize the taxonomy term “Web API”
Posts
Web API - Adding Request.IsLocal to ASP.NET Web API
要判斷 Request 是否為本地 Request,在 ASP.NET 那邊因為 Request 是 HttpRequest 型態,內建有 IsLocal 方法,可以直接叫用判斷。
但在 Web API 就沒辦法那麼直接判斷,因為 APIController.Request 是 HttpRequestMessage 型態,沒有 IsLocal 方法可以直接叫用。要自行處理這樣的判斷可以查閱 Request 內的 MS_IsLocal Property 值,這邊國外的網友已經有現成寫好的擴充方法:
public static class HttpRequestMessageExtensions { public static bool IsLocal(this HttpRequestMessage request) { var localFlag = request.Properties["MS_IsLocal"] as Lazy<bool>; return localFlag != null && localFlag.Value; } } 放進專案中直接使用即可:
public HttpResponseMessage Get() { if (Request.IsLocal()) { //do stuff } } Link Adding Request.IsLocal to ASP.NET Web API StrathWeb How to filter local requests in asp.
read morePosts
Web API - Web API Self Hosting
要 Self Hosting Web API,首先需要安裝 Microsoft.AspNet.WebApi.SelfHost 套件。
建立 HttpSelfHostConfiguration 並指定要監聽的位置。
var config =new HttpSelfHostConfiguration("http://localhost:32767"); 設定 HttpSelfHostConfiguration,像是 URL Routing 資訊。
config.Routes.MapHttpRoute("API","{controller}/{action}/{id}", new{ id =RouteParameter.Optional }); 如果要被 Host 的 Web API 在其它的組件,這邊也可建立一個實作 IAssembliesResolver 的 SelfHostAssemblyResolve 類型。
public class SelfHostAssemblyResolver : IAssembliesResolver { #region Properties /// <summary> /// Gets the path. /// </summary> /// <value> /// The path. /// </value> public string Path { get; private set ; } #endregion Properties #region Constructors /// <summary> /// Initializes a new instance of the <see cref="SelfHostAssemblyResolver"/> class.
read more