使用 ASP.NET Core MVC 創建 Web API(五)

来源:https://www.cnblogs.com/chillsrc/archive/2019/04/25/10768738.html
-Advertisement-
Play Games

通過使用Http定義的伺服器的交互方法,進行更新與刪除。 PUT通常用於向伺服器發送請求,如果URI不存在,則要求伺服器根據請求創建資源,如果存在,伺服器就接受請求內容,並修改URI資源的原始版本。如果新的資源被創建,這個原始伺服器就必須通過201(Created)響應通知用戶代理。如果已有... ...


使用 ASP.NET Core MVC 創建 Web API

使用 ASP.NET Core MVC 創建 Web API(一)

使用 ASP.NET Core MVC 創建 Web API(二)

 使用 ASP.NET Core MVC 創建 Web API(三)

使用 ASP.NET Core MVC 創建 Web API(四)

 

十五、添加更新方法

    Http定義了與 伺服器的交互方法,其中除了一般我們用的最多的GET,POST這兩個方法之外, 其實還有PUT和DELETE。

    PUT通常用於向伺服器發送請求,如果URI不存在,則要求伺服器根據請求創建資源,如果存在,伺服器就接受請求內容,並修改URI資源的原始版本。如果新的資源被創建,這個原始伺服器就必須通過201(Created)響應通知用戶代理。如果已有資源被修改,則發送200或者204響應,表示成功完成了該請求。

   PutBookItemPostBookItem 類似,但是使用的是 HTTP PUT。 響應是 204(無內容)。 根據 HTTP 規範,PUT 請求需要客戶端發送整個更新的實體,而不僅僅是更改。如果在調用 PutBookItem時出錯,請先調用 GET 方法以確保資料庫中有指定的書籍信息。

       在Visual Studio 2017中打開BookController.cs文件,添加以下 PutBookItem 方法:

// PUT: api/Book/5
        [HttpPut("{id}")]
        public async Task<IActionResult> PutBookItem(int id, Book item)
        {
            if (id != item.ID)
            {
                return BadRequest();
            }

            _context.Entry(item).State = EntityState.Modified;
            await _context.SaveChangesAsync();
            return NoContent();
        }

 

 

     一)測試 PutBookItem方法

      在進行 PUT 調用之前,在資料庫中必須要有所要修改的書籍信息。請先調用 GET 方法以確認資料庫中存在進行 PUT 調用的書籍信息數據。

     1) 在Visual Studio 2017中按F5,啟動BookApi應用程式。

    2) 打開Firefox瀏覽器,並打開 Rester,在Reseter中,將 HTTP 方法設置為 PUT

     3) 選擇“Headers”選項卡,選擇“Content-Type”選項,並將值設置為 JSON (application/json)。

     4) 然後選擇“BODY”選項卡,在請求正文中,輸入書籍信息的 JSON,如下圖:

 

 JSON字元串:{

    "id": 24,

    "name": "Python編程實例",

    "releaseDate": "2018-03-02",

    "price": 59.49,

    "author": "馬瑟斯",

    "publishing": "機械工業出版社",

     "rowVersion": "AAAAAAAANrE="

}

    5) 使用滑鼠左鍵,單擊“SEND”按鈕。 響應返回204,這次修改成功。結果如下圖。

 

     6) 如下圖,我們對ID=24的書籍信息進行了修改。我們來看一下更新前後的變化。

 

 

十六、添加刪除方法

     我們通過Http定義的DELETE方法刪除一條書籍信息。DELETE請求就是執行相應的刪除操作,配合資料庫進行相應的刪除動作。

  DeleteBookItem使用的是 HTTP DELETE。 響應是 204(無內容)。

    在Visual Studio 2017中打開BookController.cs文件,添加以下 DeleteBookItem 方法:

// DELETE: api/Book/5
        [HttpDelete("{id}")]
        public async Task<IActionResult> DeleteBookItem(int id)
        {
            var book = await _context.Book.FindAsync(id); 

            if (book == null)
            {
                return NotFound();
            } 
            _context.Book.Remove(book);
            await _context.SaveChangesAsync();
            return NoContent();
        }

    一)  測試 DeleteBookItem方法

    在進行 DELETE 調用之前,在資料庫中必須要有所要刪除的書籍信息。請先調用 GET 方法以確認資料庫中存在進行 DELETE 調用的書籍信息數據。

   1) 在Visual Studio 2017中按F5,啟動BookApi應用程式。

   2) 打開Firefox瀏覽器,並打開 Rester,在Reseter中,將 HTTP 方法設置為 DELETE

   3) 然後在URL輸入框中輸入要刪除的對象URI,例如 http://localhost:5000/api/book/24

   4) 使用滑鼠,點擊“Send”按鈕。如下圖。

 

    5) 刪除成功,如下圖。

 

      6)如果資料庫中沒有我們所要刪除的數據,則會提示如下圖。

 

     7) 我們在瀏覽器中查詢剛纔的URI地址,如下圖。數據已經不存在了。

 


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

-Advertisement-
Play Games
更多相關文章
  • 大多數現代應用程式或多或少看起來像這樣: 最常見的互動是: 瀏覽器與Web應用程式通信 Web應用程式與Web API進行通信(Web應用程式自身 或 代表用戶 與 Web API 通信) 基於瀏覽器的應用程式與Web API通信 本地應用程式與Web API通信 基於伺服器的應用程式與Web AP ...
  • 本文主要目的在於實現一個後臺心跳廣播包,所有連接到 SignalR 的客戶端,通過訂閱心跳包廣播頻道,能夠自動收到伺服器發送的心跳廣播 ...
  • 什麼是NPOI ? 簡而言之,NPOI就是可以在沒有Office的情況下對Word或Excel文檔進行讀寫等操作。 使用方式 : 1、準備NPOI的dll文件 下載鏈接:https://npoi.codeplex.com/releases 2、將下載的dll文件引入項目中 3、引用命名空間 須知: ...
  • 中間件是被用到管道(pipeline)上來處理請求(request)和響應的(response)。 asp.net core 本身提供了一些內置的中間件,但是有一些場景,你可能會需要寫一些自定義的中間件。 1. 創建一個使用匿名委托的中間件組件的形式 註:app.use中return next()會 ...
  • 異常內容 解決方案 思考:瘋狂Google,找到 https://stackoverflow.com/questions/47822177/swagger net core api ambiguous http action debugging, 但是底下沒有有價值的回答。自己琢磨一下,比起一個標準 ...
  • 異常內容 System.TypeLoadException HResult=0x80131522 Message=Method 'get_IsTraceEnabled' in type 'Abp.Castle.Logging.Log4Net.Log4NetLogger' from assembly ...
  • 最近, 我在用C#開發一個EXCEL Add-In的時候,發現了一些害人不淺的坑,特來總結列舉如下: 這裡我讀寫EXCEL引用的是using Excel = Microsoft.Office.Interop.Excel; 問題一 如何判斷一個單元格去除首尾空格後是不是空的 在獲取單元格內的文本內容進 ...
  • 在前後端分離的大環境下,API介面文檔成為了前後端交流的一個重點。Swagger讓開發人員擺脫了寫介面文檔的痛苦。 官方網址:https://swagger.io/ 在.Net Core WebApi中通過簡單配置即可使用這一強大的功能。 1.新建一個API的項目 選擇 API 項目 2.引入Swa ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...