日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

wcf:rest_REST:管理多对多关系

發布時間:2023/12/3 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 wcf:rest_REST:管理多对多关系 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

wcf:rest

介紹

管理多個資源之間的關系可能是RESTful API的重要組成部分。 在這篇文章中,我們將看到使用REST API可以管理多對多關系。

我們以一個簡單的用戶 / 組關系為例。 假設用戶和組是兩個單獨的資源(例如/ users和/ groups ),并且我們希望提供一種方法來管理以下幾點所描述的關系:

  • 可以將一個用戶添加到多個組
  • 一個組可以包含多個用戶
  • 用戶只能添加一次到組

多對多關系可以分為兩種不同的類型:

  • 除實際關系外,沒有其他信息的關系
  • 包含其他數據的關系。 在我們的例子中可以像一組成員狀態(例如, 用戶是在一個組主持人和一個簡單的成員在另一組 )

在本文中,我們將只討論第一種類型的關系。 與其他數據的關系將在以后的文章中介紹。

當然,沒有單個正確的解決方案可以解決此問題。 下一節將介紹我獲得最佳經驗的方法。 之后,我們將介紹一些替代解決方案。

建模子資源和GET操作

首先,我們介紹兩個子資源:

  • / users / <用戶ID> / groups代表分配給ID為<用戶ID>的用戶的組
  • / groups / <group-id> / users代表分配給ID為<group-id>的組的用戶

現在,使用GET動詞可以請求兩個集合。

將用戶分配到特定組:

GET /groups/<group-id>/users

獲取分配給特定用戶的組:

GET /users/<user-id>/groups

添加和刪??除用戶

現在,我們需要一種將用戶添加到組的方法。 我們使用PUT動詞執行此操作。

將用戶添加到組:

PUT /groups/<group-id>/users/<user-id>

此操作不需要請求正文。

例如,這將用戶32添加到組21中 :

PUT /groups/ 21 /users/ 32

請注意,在這里我們需要問一個問題:是否將用戶添加到組是冪等的。 在我們的示例中,該操作是冪等的:用戶只能添加一次到組中。 因此,我們使用PUT動詞。 如果分配操作不是冪等的(例如,可以將一個用戶多次添加到一個組中),我們必須使用POST而不是PUT。

在我的其他文章中,您可以閱讀有關冪等性以及POST和PUT之間的區別的更多信息。

或者,我們也可以根據需要從/ users角度對該操作進行建模。

向用戶添加組:

PUT /users/<user-id>/groups/<group-id>

要從組中刪除用戶,我們使用DELETE動詞。

從組中刪除用戶:

DELETE /groups/<group-id>/users/<user-id>

例如,這將用戶32從組21中刪除:

DELETE /groups/ 21 /users/ 32

反之亦然,從/ users一側開始:

從用戶刪除組:

DELETE /users/<user-id>/groups/<group-id>

請注意,盡管我們在/ groups / <group-id> / users / <user-id>上執行PUT和DELETE操作,但無需為此URI實現GET。 GET / groups / 21 / users / 32只會返回與GET / users / 32相同的結果(只要用戶是給定組的一部分)

替代解決方案

引入單獨的

另一種方法是創建一個完全獨立的資源來管理用戶和組之間的關系。

將用戶添加到組可能如下所示:

POST /group-members { groupId: 31 , userId: 23 }

為了將用戶分配到給定的組 ,我們可以使用與先前解決方案類似的請求:

GET /groups/<group-id>/members

但是,這一次它將返回一個組成員資源列表。

這種方法增加了一些復雜性(我們添加了一個可能具有其自身標識符的全新資源)。 但是,如果我們想向關系中添加一些其他信息(例如, 用戶的加入日期 ),則該功能特別有用。 在以后的文章中,我們將詳細研究與其他數據之間的關系。

作為正常資源更新的一部分管理關系

另一種方法是使用標準更新操作來管理關系。 例如:

PUT /users/ 23 { "name" : "John" , "groups" : [ { "id" : "42" }, { "id" : "43" } ] }

盡管這在某些情況下可以正常工作,但我不推薦這種方法。

資源和關系經常相互獨立地進行更改。 將兩個操作合并在一起可能會導致各種問題。 例如,從安全角度來看,兩個操作可能需要不同的權限。 客戶端可能被允許將用戶添加到組中,但可能沒有更新用戶本身的權限。

由于存在很多關系,因此這種方法的性能也非常麻煩。 因此,通常最好提供單獨的操作來更新資源和關系。

翻譯自: https://www.javacodegeeks.com/2020/06/rest-managing-many-to-many-relations.html

wcf:rest

總結

以上是生活随笔為你收集整理的wcf:rest_REST:管理多对多关系的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 91av观看 | 国产色 | 人人草人人澡 | 日本激情视频在线观看 | 成人另类小说 | 可以免费看的av网站 | 91麻豆精品视频 | 免费av观看 | 温柔女教师在线观看 | 国产婷婷色一区二区三区在线 | 特级西西人体wwwww | 亚洲精品中文无码AV在线播放 | 亚洲无限av | 中文人妻熟妇乱又伦精品 | 成人免费网站www网站高清 | 国产老妇视频 | 极品少妇xxxx精品少妇 | 成人性视频免费网站 | 国产精品久久久av | 欧美性受xxxx黑人xyx性爽 | 五月天婷婷在线播放 | 国产主播自拍av | 日本免费一区二区三区四区五六区 | 青青草国产在线观看 | 超碰人人擦 | 侵犯女教师一区二区三区 | 97久久国产亚洲精品超碰热 | 成人黄色小说视频 | 少妇一区二区三区四区 | 国产成人在线观看网站 | 捆绑少妇玩各种sm调教 | 丁香六月天婷婷 | 麻豆免费看片 | 在线观看中文字幕av | 99视频免费看 | 成人黄色在线免费观看 | 麻豆视频在线免费观看 | 婷婷久久五月天 | 毛片在哪看| 日韩高清一二三区 | 久久久精品免费 | 天天噜日日噜 | jizz欧美大片 | 国产无码精品一区二区 | 成人黄色在线视频 | 中文字幕无码精品亚洲资源网久久 | 日韩网| 特黄做受又粗又大又硬老头 | 超碰女| 国产欧美一区二区精品性色99 | 伊人开心网| 亚洲精视频 | 精品亚洲天堂 | 中文字幕一区二区免费 | 色噜噜狠狠狠综合曰曰曰88av | 日韩久久综合 | 91免费片| 韩国短剧在线观看 | 一本久道久久综合无码中文 | 二区不卡 | 91久久久久久 | www色网站 | av之家在线| 亚洲爱爱图 | 亚洲第一二区 | 黄色av网站在线观看 | 涩色网 | 国产精品伦一区二区三级古装电影 | 日本美女在线 | 欧美一级淫片免费视频黄 | 一级做a免费 | 中国美女乱淫免费看视频 | 四虎精品成人免费网站 | 欧美特级黄色录像 | 亚洲资源在线观看 | 超碰在线成人 | 成人亚洲电影 | 99av视频| 日韩一区二区视频在线播放 | 秋霞欧美一区二区三区视频免费 | 天天综合网入口 | 国产精品短视频 | 天天躁日日躁狠狠躁av麻豆男男 | 国偷自产视频一区二区久 | 97在线播放 | 久久爱影视i | 七仙女欲春2一级裸体片 | 能免费看18视频网站 | 狠狠躁日日躁 | 樱花av在线 | 人人艹人人 | 日韩最新在线 | 中文字幕人妻一区二区三区 | 中国女人黄色大片 | 天天干天天操天天摸 | 欧美成人dvd在线视频 | 丰满的人妻hd高清日本 | 超污视频软件 | 波多野结衣一区在线 |