<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      JsonPatch學習

      網址 http://jsonpatch.com/

      參考資料   https://docs.microsoft.com/zh-cn/aspnet/core/web-api/jsonpatch?view=aspnetcore-3.1


            jsonpatch 個人感覺就是簡化修改接口,就像給接口傳個命令一樣, replace Age 30;replace 就像命令, Age 就是參數,要修改的字段, 30 就是具體修改的值,jsonpatch 是通過json的方式來傳遞命令的,基本就是對json的 操作,增改刪,

      支持的語言也比較廣泛,js 用法 http://jsonpatchjs.com/


      例如 我們在QQ 中設置資料的時候, 是沒有保存按鈕的,選一個 或者編輯 都會 更新的,這種功能,我們不可能每次小改動就傳遞一個很大的實體去服務端修改,jsonpatch 就解決了這個問題

      [{"op":"replace","path":"isopen","value":"true"}]  這個就即搞定,

      頁面是沒有保存按鈕的,但是點擊復選框等都會保存我們的操作。

      安裝2個包
      Microsoft.AspNetCore.JsonPatch
      Microsoft.AspNetCore.Mvc.NewtonsoftJson
      注冊
      services.AddControllers().AddNewtonsoftJson();

      準備實體類和API接口

       1 [ApiController]
       2     [Route("jsonpatch")]
       3     public class JsonPatchController : ControllerBase
       4     {
       5         public static List<User> _list;
       6         private readonly ILogger<JsonPatchController> _logger;
       7 
       8         public JsonPatchController(ILogger<JsonPatchController> logger)
       9         {
      10             _logger = logger;
      11             _list = new List<User>();
      12 
      13             _list.Add(new User { Address=new List<Address> { new Address { City="廣州", Group="一組" } }, Id=1, Name="jet1" });
      14             _list.Add(new User { Address = new List<Address> { new Address { City = "深圳", Group = "2組" } }, Id = 2, Name = "jet2" });
      15             _list.Add(new User { Address = new List<Address> { new Address { City = "西安", Group = "3組" } }, Id = 3, Name = "jet3" });
      16 
      17 
      18         }
      19         [Route("[action]/{id}")]
      20         [HttpPatch]
      21         public IActionResult UserOperation(int id, [FromBody] JsonPatchDocument<User> userDoc)
      22         {
      23             if (userDoc != null)
      24             {
      25                 var user =_list.Where(x=>x.Id== id).FirstOrDefault();
      26                 userDoc.ApplyTo(user, ModelState);
      27                 if (!ModelState.IsValid)
      28                 {
      29                     return BadRequest(ModelState);
      30                 }
      31                  //context.savechange()
      32                 return new ObjectResult(user);
      33             }
      34             else
      35             {
      36                 return BadRequest(ModelState);
      37             }
      38         }
      39        
      40 
      41     }
      42 
      43 
      44     public class User
      45     {
      46         public int Id { get; set; }
      47         public string Name { get; set; }
      48         public List<Address> Address { get; set; }
      49     }
      50     public class Address
      51     {
      52         public string City { get; set; }
      53         public string Group { get; set; }
      54     }
      View Code

      postman 請求, Content-Type  :application/json-patch+json

      add

       1 [
       2     {
       3         "op": "add",
       4         "path": "/Address/-",
       5         "value": {
       6             "City":"咸陽"
       7         }
       8     },
       9      {
      10         "op": "add",
      11         "path": "/Address/-",
      12         "value": {
      13             "City":"寶雞"
      14         }
      15     }
      16    
      17 ]
      View Code

      remove

       1 [
       2     {
       3         "op": "remove",
       4         "path": "/Address/",
       5         "value": {
       6             "City":"廣州"
       7         }
       8     }
       9    
      10 ]
      View Code

       replace

       1 [
       2     {
       3         "op": "replace",
       4         "path": "/Address/-",
       5         "value": {
       6             "City":"湛江"
       7         }
       8     }
       9    
      10 ]
      View Code

       移動操作  將城市移動到了user name

      1 [
      2     {
      3         "op": "move",
      4         "from":"/Address/0/City",
      5         "path": "/Name"
      6     }
      7    
      8 ]
      View Code

       

      還有  copy   test

      test 操作通常用于在發生并發沖突時阻止更新。

       

      posted @ 2021-01-12 15:29  Jet-jing  閱讀(545)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 思热99re视热频这里只精品| 亚洲成女人图区一区二区| 国产精品久久久久7777| 成人免费A级毛片无码网站入口| 欧美人禽zozo动人物杂交| 九九热99精品视频在线| 亚洲精品国产电影| 国产美女裸身网站免费观看视频 | 精品少妇后入一区二区三区| 久久精品国产蜜臀av| 精品国产午夜理论片不卡| 日本免费一区二区三区久久| 亚洲男人天堂2018| 高清破外女出血AV毛片| 午夜大尺度福利视频一区| 成人AV无码一区二区三区| 性色av免费观看| 亚洲av乱码久久亚洲精品| 中文字幕无码av不卡一区| 欧美xxxxx高潮喷水| 日本一区二区久久人妻高清| 桃花岛亚洲成在人线AV| 性欧美vr高清极品| 国产视频一区二区三区四区视频| 五月天久久综合国产一区二区| 99精品国产中文字幕| 国产精品亚洲五月天高清| 中文日韩在线一区二区| 欧美福利在线| 欧洲熟妇熟女久久精品综合| 亚洲人成网站在线观看播放不卡| 亚洲一区二区三区18禁| 无码免费大香伊蕉在人线国产| 性XXXX视频播放免费直播| 色丁香一区二区黑人巨大| 久草热8精品视频在线观看| 六盘水市| 性欧美三级在线观看| 妺妺窝人体色www看美女| 成人午夜在线观看日韩| 亚洲精品一区二区三区蜜臀|