使用C#的後端Web API:循序漸進教程

2020-12-19 智能甄選

如何在VS中創建基於.NET的後端應用程式,該應用程式使用C#語言從Web API中提取。讓我們開始吧!

為伺服器後端邏輯選擇語言的問題是幾乎每個開發人員最重要的問題之一,特別是對於初學者。目前已經有很多不同的語言:Java,.NET(C#,VD),Ruby,Python,Perl,JavaScript(Node.js),Go,C ++。

除了這些語言的語法特徵外,還有許多其他問題/問題,例如擴展的可能性,不同類型資料庫的使用,高學習曲線,容錯要求,大量數據等等。上。

哪種語言最受歡迎?你應該使用哪一個?也許有人會推薦PHP,它具有豐富的功能和較低的學習曲線。然而,事實仍然是現在最常用的語言是Java和.NET。

本教程介紹如何使用C#(ASP.NET)構建自己的Web伺服器(Web API)。重要的是要注意,要託管您的伺服器,您將需要基於Windows的託管。

先決條件

我想我們可以開始了。首先,當我們使用C#時,您需要使用Microsoft Visual Studio(您可以在Microsoft官方網站上獲取它)。

此外,您還需要啟用IIS(Internet信息服務)。在Windows中啟用它很容易:

在Windows 10中打開「控制面板」,單擊「程序」,然後找到「程序和功能」部分,並單擊「打開或關閉Windows功能」。在這裡,找到Internet信息服務。單擊其前面的+圖標以展開其下的所有可用選項。您可以找到FTP伺服器,Web管理工具和全球資訊網服務。現在啟用Web管理工具。單擊「確定」,將添加所選功能(或多個功能)並將其應用於Windows。

第1步:創建一個新項目

打開Microsoft Visual Studio並創建一個新項目(文件 - >新建 - >項目)。選擇「已安裝」模板,選擇「Visual C#」,然後選擇「Web」。在可用模板列表中,選擇「ASP.NET Web應用程式(.NET Framework)」。給你的項目命名(對於我的演示,我把「webapi」),然後單擊OK。

在下一個模態對話框中,您可以選擇任何合適的模板。讓我們選擇Web API,這樣它就會為項目準備所有基本的初始文件。單擊確定。

完成。現在,您可以在解決方案資源管理器中瀏覽生成的文件夾和文件 有應用程式配置,幫助頁面數據,一些控制器,字體,CSS和JS文件。

路由表

默認情況下,伺服器使用位於App_Start / WebApiConfig.cs中的路由表。

注意routeTemplate: "api/{controller}/{id}",它解釋了API路由。

現在,讓我們做一個基本的例子。在本教程中,我們將為用戶準備一個API,這是每個系統的一個非常通用的實體/對象。

添加用戶模型

該模型代表用戶,因此我們將包括各種欄位,如ID,姓名,電子郵件,電話和角色。

在Solution Explorer中,右鍵單擊Models文件夾,選擇Add,然後選擇Class。然後提供一個類名:User。模型類已準備就緒。

現在我們只添加我們決定添加的所有欄位:

public class User{public int id { get; set; }public string name { get; set; }public string email { get; set; }public string phone { get; set; }public int role { get; set; }}

添加用戶控制器

在Web API中,控制器是處理所有HTTP請求的對象。在解決方案資源管理器中,右鍵單擊「控制器」。選擇Add,然後選擇Controller。

在給定的對話框中,選擇具有讀/寫操作的Web API 2 Controller。將控制器命名為UsersController。它將為控制器準備所有適當的CRUD操作。

在本文中,我使用虛擬用戶列表準備了一個基本示例:

public class UsersController : ApiController{private User[] users = new User[]{new User { id = 1, name = "Haleemah Redfern", email = "email1@mail.com", phone = "01111111", role = 1},new User { id = 2, name = "Aya Bostock", email = "email2@mail.com", phone = "01111111", role = 1},new User { id = 3, name = "Sohail Perez", email = "email3@mail.com", phone = "01111111", role = 1},new User { id = 4, name = "Merryn Peck", email = "email4@mail.com", phone = "01111111", role = 2},new User { id = 5, name = "Cairon Reynolds", email = "email5@mail.com", phone = "01111111", role = 3}};// GET: api/Users[ResponseType(typeof(IEnumerable<User>))]public IEnumerable<User> Get(){return users;}// GET: api/Users/5public IHttpActionResult Get(int id){var product = users.FirstOrDefault((p) => p.id == id);if (product == null){return NotFound();}return Ok(product);}...

第2步:部署

現在,您可以構建解決方案(在Visual Studio中按Ctrl + Shift + B)。一旦構建成功,您就可以運行它。單擊F5,它將在您的瀏覽器中自動在您的本地主機的可用埠(例如http:// localhost:61024 /)中打開。最有可能的是,您不希望它始終在Visual Studio中運行,因此最好將其保留為服務。

在這種情況下,我們可以使用IIS(Internet信息服務)將其部署到本地專用伺服器。這很簡單。

首先,打開IIS,在「站點」下面的左側 - 添加新網站(從右側面板或右鍵單擊「站點」)。請輸入以下詳細信息:站點名稱,「webapi.localhost.net」; 物理路徑,「C:\ projects \ webapi」(解決方案所在的位置); 綁定 - http或https; 主機名是相同的,即「webapi.localhost.net」。單擊確定。

IIS應該在webapi.localhost.net上運行Web API服務。

現在,如果您嘗試在瀏覽器中打開webapi.localhost.net,它將無法打開我們創建的結果。這是因為瀏覽器嘗試將此地址(webapi.localhost.net)解析為全局域。為了將此域名映射到本地伺服器,我們需要修改本地主機文件。在Windows(v10)上,hosts文件存在於C:\ Windows \ system32 \ drivers \ etc文件夾中。該文件沒有自己的擴展名,它是「主機」文件。

將其複製到另一個位置並在編輯器中打開它

您需要將以下內容添加到此文件的末尾:

#Web API主機127 .0.0.1 webapi.localhost.net

現在,您需要將修改後的文件放回C:\ Windows \ system32 \ drivers \ etc文件夾中。由於此文件夾默認受Windows保護,因此您將收到拒絕訪問警告消息。因此,您需要複製「以管理員身份」文件。

文件更新後,webapi.localhost.net應從您的localhost(C:\ projects \ webapi)加載。

測試API

是時候測試我們為Web伺服器創建的API方法了: api/users and api/users/{id}。 在瀏覽器中打開http://webapi.localhost.net/api/users。你應該得到以下輸出:

在我們創建可從IDE外部訪問的外部API時,我們需要從另一個頁面測試我們的API。最簡單的方法是通過開發工具欄(存在於任何現代瀏覽器中)。通常在按F12時會激活它。轉到「控制臺」標籤。下面我準備了兩個小例子,你可以用來測試API

如果jQuery可用,您可以使用:

$.ajax({type: "GET",url: 'http://webapi.localhost.net/api/users',success: (data) => {console.log(data);}});

否則,使用本機JavaScript,您可以使用以下代碼:

var xhr = new XMLHttpRequest();xhr.open('GET', 'https://webapi.localhost.net/api/users');xhr.onload = function() {console.log(xhr.response);};xhr.send();

您很可能會收到以下錯誤:

對預檢請求的響應未通過訪問控制檢查:請求的資源上不存在「Access-Control-Allow-Origin」標頭。

原因是常規網頁可以使用該 XMLHttpRequest 對象從遠程伺服器發送和接收數據,但它們受到相同原始策略的限制。擴展不是那麼有限。擴展可以與其來源之外的遠程伺服器通信,只要它首先請求跨源權限即可。

跨源資源共享(CORS)是一種機制,它使用其他HTTP標頭告訴瀏覽器讓在一個源(域)上運行的Web應用程式有權從不同來源的伺服器訪問所選資源。

調整跨源資源共享(CORS)

為了解決這個問題,我們需要在我們的解決方案中啟用CORS。在Visual Studio中,打開包管理控制臺(可在屏幕底部,錯誤列表和輸出之間)。

運行以下命令:

Install-Package Microsoft.AspNet.WebApi.Cors

這將安裝WebApi.Cors參考。然後打開「App_Start \ WebApiConfig.cs」文件。加config.EnableCors();之前config.MapHttpAttributeRoutes();

然後返回我們的UsersController.cs並[EnableCors(origins: "*", headers: "*", methods: "*")]在類定義之前添加。

最後 - 再次重建項目。然後嘗試再次測試API; 現在它應該工作。

我希望你喜歡我們的文章,你發現它很有用。

相關焦點

  • 教程|Python?Web頁面抓取:循序漸進
    出於測試目的,建議使用常規瀏覽器(或非無頭瀏覽器),尤其是新手。看到代碼與應用程式交互就能進行簡單的故障排除和調試,也有助於更好地理解整個過程。無頭瀏覽器處理複雜任務效率更高,後續可使用。本教程使Chrome網頁瀏覽器,若選用Firefox瀏覽器,過程也相差無幾。
  • web開發我更喜歡使用GO語言
    go語言在2007年9月設計,然後於2009年11月正式向外宣布推出使用,而且是開放原始碼項目,首先在Linux系統與go語言可能是Google開發的程式語言,迅速受到開發的關注並願意使用它,在2016年被TIOBE 選為「TIOBE 年最佳程式語言」,可想而知go能被開發者認可一定有它獨特的優勢,而我更喜歡使用GO語言web開發。
  • magic-api 0.4.8 發布,接口快速開發框架
    一元運算符,支持非布爾值運算 修複函數命名atPercent變更為asPercent項目介紹magic-api 是一個基於Java的接口快速開發框架,通過magic-api提供的UI界面完成編寫接口,無需定義Controller
  • web開發實戰教程:Apache Shiro在web項目的應用
    web開發實戰教程今天準備分享一下Apache Shiro 在web開發中的應用。shiro安全框架是目前為止作為登錄註冊最常用的框架,因為它十分的強大簡單,提供了認證、授權、加密和會話管理等功能 。認證:驗證用戶的身份授權:對用戶執行訪問控制:判斷用戶是否被允許做某事會話管理:在任何環境下使用 Session API,即使沒有 Web 或EJB 容器。加密:以更簡潔易用的方式使用加密功能,保護或隱藏數據防止被偷窺Realms:聚集一個或多個用戶安全數據的數據源單點登錄(SSO)功能。
  • magic-api 0.5.0 發布,接口快速開發框架
    RequestBody 為空時會報錯的問題 修復+=、-=、/=、%= 對int值操作時未賦值的BUG其它項目介紹magic-api是一個基於Java的接口快速開發框架,通過magic-api提供的UI界面完成編寫接口,無需定義Controller、Service、Dao、Mapper、XML、VO等Java對象即可完成常見的HTTP API接口開發使用方式maven引入
  • 鳶尾花預測:如何創建機器學習Web應用程式?
    本文就將展示如何在Python庫中使用streamlit,用不到50行的代碼構建一個簡單的基於機器學習的數據科學web應用程式。應用程式的概念流程主要由兩個部分組成:前端和後端。這些特性會被傳送到後端,後端的訓練模型將預測類標籤作為輸入參數的函數,預測結果再發回前端顯示。在後端,用戶輸入的參數將被保存到一個數據幀中作為測試數據。同時,利用scikit-learn庫中的隨機森林算法建立分類模型。最後,將該模型應用於預測用戶輸入的數據,並將預測的類標籤返回到三種花卉類型:setosa、versicolor或virginica。
  • [Go 語言教程] Go 語言簡介
    Go 語言教程1 Go 語言介紹Go 即Golang,是Google公司2009年11月正式對外公開的一門程式語言。最新版本也有動態庫形式,對跨語言調用的支撐更到位開源框架比較成熟,新崛起的網際網路公司都在用——如滴滴,uber,百度,阿里巴巴,oppo,vivo等微服務的開發模式下Go語言是新寵4 Go 擅長領域服務開發,web
  • IPFS如何使用Terminal部署Web應用程式
    歡迎使用新的網際網路。Vue +終端=去中心化魔術?終端為使用git的連續部署提供了易於設置的解決方案。設置完成後,它會跟蹤對存儲庫的新更改並相應地觸發部署。儘管Terminal支持幾乎所有站點和流行框架,但出於本教程的目的,我將使用Vue CLI 4設置Vue.js應用程式。
  • 淘寶聯盟api如何申請「2020新版教程」
    淘寶聯盟最新版的規則,導購推廣位也可以申請api,在以前,只有網站和app才能申請,現在,使用普通的導購推廣位也可以申請,這對於新手來說是利好消息,至少不需要你再去為了api而專門建站。6、申請成功之後,默認系統會給開通淘口令生成的api,但是還不夠,還沒完。7、點擊上圖所示的查看按鈕,然後可以查看到實際只有1個api分支權限。
  • 「最新乾貨教程」2020免費下載高權限web of science、PubMed文獻
    如何免費下載web of science、PubMed、Wiley等論文期刊,最新教程,請查收~ISI Web of Science 是全球最大、覆蓋學科最多的綜合性學術信息資源,收錄了自然科學、工程技術、生物醫學等各個研究領域最具影響力的超過
  • C#初學者教程系列2:如何下載和安裝Visual Studio for C#
    本文是C#初學者簡單教程,這是第2篇。感謝觀看,記得關注我,後續還有更多教程文章,謝謝。可以使用Visual Studio開發,調試和運行應用程式。可以使用此IDE設計和開發基於表單的應用程式和基於Web的應用程式。Visual Studio被中國人稱為宇宙最強IDE,它具備超強的智能感知等功能。入坑前提醒:一旦習慣使用此IDE,你將很難放棄它改用其它IDE,這也是不少C#程式設計師不想轉為Java的原因之一。
  • 我的世界forge api下載 1.6.2版本附api安裝視頻
    補丁大小:3.8M   語言:簡體   補丁類型:遊戲工具   名稱:我的世界forge api 1.6.2版本下載
  • 基於嵌入式的開發雲和後端技術的討論研究
    作為嵌入式開發工程師,也許並不需要熟悉雲和後端的技術開發,但至少要對其中用到的技術和接口有一定的認識。   一、網絡架構   常見的網絡架構分為C/S和B/S兩種模式。   1.   三、後端軟體架構   以上分析是基於部署視圖對整個系統的理解。在一般的軟體業務系統中,web服務使用apache(開源),資料庫服務用Mysql(開源)等,都是成熟的軟體產品,或者我們可以認為它們是一種軟體工具。在實現業務系統中,我們能做的是去高效利用apache和mysql,而業務實現的核心是業務引擎的實現。
  • 言兌網鄧欣:最有生存價值的web2.0網站
    首頁 > 評論 > 關鍵詞 > 最新資訊 > 正文 言兌網鄧欣:最有生存價值的web2.0網站
  • 詳解API網關核心功能和API管理擴展
    反向的後端服務快速接入並發布為API接口服務,即直接對後端已有的API服務進行快速接入,將API後端服務發布為代理服務,在整個接入過程中需要定義API接口名稱,API訪問路徑,API方法類型等信息。在發布為API接口服務後,對於後端服務的API參數信息也需要進行快速導入,以方便在API接口查詢中看到詳細的接口內容定義。
  • kong——API gateway配置RS實踐 連接資料庫postgres主從流複製
    下面記錄的是針對kong開發的需求驗證,這裡主要是用kong做一些簡單服務的添加驗證下面操作對應的接口可用性,比如添加upstream及其後端的RS,並將其掛到某個location後面,用於做proxy。
  • 如何用Python和Scrapy將Web轉化為數據
    基本上,每個web頁面都以HTML格式從伺服器返回。這意味著我們實際的數據被很好地打包在HTML元素中。它使得檢索特定數據的整個過程非常簡單和直接。本教程將是您學習使用Python程式語言進行web抓取的最終指南。首先,我將向您介紹一些基本示例,以使您熟悉web抓取。稍後,我們將使用這些知識從Livescore中提取。
  • 小說app客戶端與小說網頁web客戶端的區別有哪些?
    大家平時看小說一般使用什麼工具?在這個網際網路發達的時代,每個人接觸網絡的方式越來越多樣化,電腦、手機、平板、數位電視等等。網絡文學也就此興起,小說便成為一些人解乏休閒的必備。各類小說題材崛起,修仙題材、都市言情、科技技術等等都十分火爆。當然人們的閱讀方式也各自不同。