🔥 基礎入門篇
1. 什麼是ASP.NET WebAPI?
答案:ASP.NET WebAPI是用於構建RESTful HTTP服務的框架,支持多種客户端如瀏覽器、移動設備等。
2. 創建簡單WebAPI控制器
public class MyController : ApiController
{
public string Get()
{
return "Hello, WebAPI!";
}
}
3. 定義GET方法
[HttpGet]
public string Get()
{
return "Hello, WebAPI!";
}
4. 定義POST方法
[HttpPost]
public void Post([FromBody] string value)
{
// 處理POST請求數據
}
5. 返回JSON數據
public IHttpActionResult Get()
{
var data = new { Name = "John", Age = 30 };
return Json(data);
}
⚡ 進階實戰篇
1. 自定義路由配置
[Route("api/custom/route")]
public string Get()
{
return "自定義路由示例";
}
2. 全局異常處理
public class CustomExceptionFilter : ExceptionFilterAttribute
{
public override void OnException(HttpActionExecutedContext context)
{
context.Response = new HttpResponseMessage(HttpStatusCode.InternalServerError)
{
Content = new StringContent("系統發生異常,請稍後重試")
};
}
}
3. 依賴注入實戰
// 使用Unity容器
var container = new UnityContainer();
container.RegisterType<IMyService, MyService>();
GlobalConfiguration.Configuration.DependencyResolver = new UnityResolver(container);
4. 模型驗證機制
public class UserModel
{
[Required(ErrorMessage = "姓名不能為空")]
public string Name { get; set; }
}
[HttpPost]
public IHttpActionResult CreateUser(UserModel model)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
return Ok("用户創建成功");
}
5. 身份驗證保護
[Authorize]
public IHttpActionResult GetSecretData()
{
return Ok("這是受保護的數據");
}
🚀 高級特性篇
1. 自定義消息處理器
public class LoggingMessageHandler : DelegatingHandler
{
protected override async Task<HttpResponseMessage> SendAsync(
HttpRequestMessage request, CancellationToken cancellationToken)
{
// 請求前記錄日誌
var response = await base.SendAsync(request, cancellationToken);
// 響應後記錄日誌
return response;
}
}
2. 自定義授權邏輯
public class RoleBasedAuthorizeAttribute : AuthorizeAttribute
{
protected override bool IsAuthorized(HttpActionContext actionContext)
{
// 基於角色的自定義授權邏輯
return actionContext.RequestContext.Principal.IsInRole("Admin");
}
}
[RoleBasedAuthorize]
public IHttpActionResult AdminOnly()
{
return Ok("管理員專屬內容");
}
3. 文件上傳功能
[HttpPost]
public async Task<IHttpActionResult> UploadFile()
{
var provider = new MultipartFormDataStreamProvider(Path.GetTempPath());
await Request.Content.ReadAsMultipartAsync(provider);
foreach (var file in provider.FileData)
{
// 處理上傳的文件
}
return Ok("文件上傳成功");
}
4. 跨域請求配置
[EnableCors(origins: "https://example.com", headers: "*", methods: "*")]
public class CrossOriginController : ApiController
{
public string Get()
{
return "支持跨域訪問";
}
}
5. API版本控制策略
// V1版本
[RoutePrefix("api/v1/products")]
public class ProductsV1Controller : ApiController
{
[Route("")]
public string Get() => "V1版本API";
}
// V2版本
[RoutePrefix("api/v2/products")]
public class ProductsV2Controller : ApiController
{
[Route("")]
public string Get() => "V2版本API - 新增功能";
}
💡 面試準備建議
掌握要點:
- ✅ 理解RESTful架構原則
- ✅ 熟悉HTTP協議和狀態碼
- ✅ 掌握依賴注入和中間件
- ✅ 瞭解安全機制和性能優化
實戰建議:
- 親手實現每個代碼示例
- 理解各特性的應用場景
- 準備項目經驗分享
通過系統掌握這些知識點,你將在ASP.NET WebAPI的技術面試中展現出紮實的技術功底和實戰能力!
🔥 附錄
.NET全棧經典面試題庫
內容涵蓋以下內容
- ASP.NET MVC應用場景面試題
- WinForm應用場景面試題
- jQuery應用場景面試題
- 3、SQLServer面試題
- ASP.NET應用場景面試題
- C#基礎面試題及其答案
- ASP.NET WebAPI應用場景面試題
- MySQL面試題
- SQL Server應用場景面試題
下載鏈接1:
.NET全棧經典面試題庫(夸克網盤)
下載鏈接2:
.NET全棧經典面試題庫(迅雷雲盤)