<<ABP文檔>> Web Api 控制器

來源:互聯網
上載者:User

標籤:資訊   span   審計日誌   filter   瀏覽器   檢查   標準   好處   net   

文檔目錄

 

本節內容:

  • 簡介
  • AbpApiController 基類
    • 本地化
    • 其它
  • 過濾
    • 審計日誌
    • 授權
    • 防偽造過濾 
    • 工作單元
    • 結果封裝和異常處理
    • 結果緩衝
    • 驗證
  • 模組綁定器

 

簡介

通過Abp.Web.Api的nuget包,把ABP整合到Asp.net Web Api 控制器裡。你可以像之前做的一樣建立平常的Asp.net Web Api控制器,依賴注入會很好地為這些平常的ApiController工作,但你要把你的控制器繼承於AbpApiController,它提供了許多好處和更好地整合到ABP。

 

AbpApiController基類

這是一個簡單的繼承於AbpApiController的api控制器:

public class UsersController : AbpApiController{}

 

 

本地化

AbpApiController定義了L方法,使得本地化變得更容易,如:

public class UsersController : AbpApiController{    public UsersController()    {        LocalizationSourceName = "MySourceName";    }    public UserDto Get(long id)    {        var helloWorldText = L("HelloWorld");        //...    }}

 

你先要設定LocalizationSourceName,L方法才能正確工作,你可以在你自己的基api控制器類裡設定它,這樣就不用再為每個api控制器重複設定。

 

其它

你可以使用預先注入的AbpSession、EventBus、PermissionManager、PermissionChecker、SettingManager、FeatureManager、FeatureChecker、LocalizationManager、Logger、CurrentUnitOfWork等基屬性。

 

過濾

ABP為所有的Asp.net Web Api預置了一些過濾,它們被預設地添加到所有控制器的所有Action裡。

 

審計日誌

AbpApiAuditFilter用來整合到審計日誌系統,它在預設情況下記錄所有對所有Action請求(如果審計沒有被禁用),你可以用Audited和DisableAuditing特性控制Action和控制器的審計日誌。

 

授權

你為你的api控制器或Action使用AbpApiAuthorize特性,阻止未授權使用者訪問它們,例如:

public class UsersController : AbpApiController{    [AbpApiAuthorize("MyPermissionName")]    public UserDto Get(long id)    {        //...    }}

 

你可以為Action或控制器定義AllowAnonymous特性,廢止認證/授權。AbpApiController也定義了一個在定義裡檢查許可的快捷方法IsGranted。

更多資訊查看授權文檔。 

 

防偽造過濾

AbpAntiForgeryApiFilter自動保護Asp.net Web Api的Action(包括動態Web Api)來自CSRF/XSRF的POST、PUT和DELETE請求攻擊。更多資訊查看CSRF文檔。

 

工作單元

AbpApiUowFilter用來整合到工作單元系統,在一個Action執行前自動開始一個工作單元,並在Action執行結束後完成工作單元(如果沒有異常拋出)。

你可為一個Action使用UnitOfWork特性,控制它的工作單元行為,你也可以在啟動配置裡為所有Action修改預設的工作單元特性。

 

結果封裝和異常處理

當Web Api的Action成功執行後,ABP不會預設地自動封裝它,但ABP會處理並封裝異常,如有需要,你可以給Action和控制器添加WrapResult/DontWrapResult,你可以從啟動配置裡修改這個預設行為(使用Configuration.Modules.AbpWebApi()....)。關於結果封裝的更多資訊,查看AJAX文檔。

 

結果緩衝

ABP為Web Api請求響應裡添加了Cache-Control頭(no-cache,no-store),因此,它甚至會阻止瀏覽器對GET請求響應的緩衝,不過可以通過配置這個行為。

 

驗證

AbpApiValidationFilter自動檢查ModelState.IsValid並在檢測到非法時阻止Action執行。實現輸入DTO的驗證在驗證文檔裡進行了描述。

 

模組綁定器

AbpApiDateTimeBinder用來標準化通過Clock.Normalize方法輸入的DateTime(和Nullable<DateTime>)。

 

 

 

 

 

    

<<ABP文檔>> Web Api 控制器

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.