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

来源:http://www.cnblogs.com/kid1412/archive/2016/10/29/6012020.html
-Advertisement-
Play Games

文檔目錄 本節內容: 簡介 AbpApiController 基類 本地化 其它 過濾 審計日誌 授權 防偽造過濾 工作單元 結果包裝和異常處理 結果緩存 驗證 模塊綁定器 本地化 其它 審計日誌 授權 防偽造過濾 工作單元 結果包裝和異常處理 結果緩存 驗證 簡介 通過Abp.Web.Api的nu ...


文檔目錄

 

本節內容:

 

簡介

通過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控制器重覆設置。

 

其它

你可以使用預先註入的AbpSessionEventBusPermissionManager、PermissionCheckerSettingManagerFeatureManager、FeatureCheckerLocalizationManagerLoggerCurrentUnitOfWork等基屬性。

 

過濾

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>)。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 文檔目錄 本節內容: 簡介 Asp.net Core 安裝 安裝Nuget包 配置 測試 Asp.net 5.x 安裝 安裝Nuget包 配置 測試 安裝 安裝Nuget包 配置 測試 安裝 安裝Nuget包 配置 測試 簡介 來自它的網頁:“...使用一個Swagger-enabled Api,你 ...
  • 前言: 由於先前用python+opencv做了一會兒人臉識別。(其實是別人做的,我是打醬油的)。 用winform做了當時用的一個功能界面。打開攝像頭併進行拍照保存。 界面預覽: 此次,利用的是winform+AForge框架。AForge是全過程都在用的,必須要有。 介紹一下製作過程: 1.創建 ...
  • 一、簡介 首先來看看.net的發展中的各個階段的特性:NET 與C# 的每個版本發佈都是有一個“主題”。即:C#1.0托管代碼→C#2.0泛型→C#3.0LINQ→C#4.0動態語言→C#4.5非同步編程 所謂的非同步編程是利用CPU空閑時間和多核的特性,它所返回的Task或Task是對await的一個 ...
  • 文檔目錄 本節內容: 簡介 安裝 安裝Nuget包 設置模塊依賴 配置你的實體 創建控制器 示例 獲取實體列表 請求 響應 獲取單個實體 請求 響應 獲取單個實體及導航屬性 請求 響應 查詢 請求 響應 創建一個新實體 請求 響應 獲取元數據 請求 響應 示例項目 安裝Nuget包 設置模塊依賴 配 ...
  • Quartz.NET是一個非常強大的作業調度框架,適用於各種定時執行的業務處理等,類似於WINDOWS自帶的任務計劃程式,其中運用Cron表達式來實現各種定時觸發條件是我認為最為驚喜的地方。 Quartz.NET主要用到下麵幾個類: IScheduler --調度器 IJobDetail --作業任 ...
  • using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ref_out { class Program { static void Method1(ref int ...
  • 文檔目錄 本節內容: 創建動態Web Api控制器 ForAll 方法 重寫 ForAll ForMethods Http 動詞 WithVerb 方法 HTTP 特性 命名約定 Api 瀏覽器 RemoteService 特性 動態Javascript代理 AJAX 參數 單獨服務腳本 Angul ...
  • 在網上收集。。。 C#的值類型,引用類型,棧,堆,ref,out C# 的類型系統可分為兩種類型,一是值類型,一是引用類型,這個每個C#程式員都瞭解。還有托管堆,棧,ref,out等等概念也是每個C#程式員都會接觸到的概念,也是C#程式員面試經常考到的知識,隨便搜搜也有無數的文章講解相關的概念,貌似 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...