REST api,具有关系的 POST 实体?

2023-11-21

我遇到一个问题,我无法决定如何继续处理这个问题。我需要知道是否有任何标准方法来解决这个问题。或者你们是否对这个问题有任何很好的意见。

问题是我已经开始构建一个非常基本的 API 来用于学习目的 API 是一个简单的音乐商店..该商店有一些需要艺术家的专辑。

因此,关系是艺术家 专辑,并且专辑的存在需要专辑有一位艺术家。但艺术家不需要专辑。

现在问题来了...

由于这种关系,如果我想创建一个新专辑..我必须发布专辑数据..以及整个艺术家数据..不仅仅是艺术家的ID..而是整个艺术家..这似乎并不如果你问我的话,非常有效..因为那是很多不必要的。

所以据我所知,有两种方法可以解决这个问题...... 要么我只发布整个专辑数据/对象,并允许该对象的艺术家数据仅包含一个 ID,然后引用该艺术家。

所以不要发帖:

{
"Name":"AlbumName",
"Description":"Some description for the album",
"ReleaseYear": "1992",
"Artist" {
    "Name":"Some artist",
    "Id":"12345",
    "Biography":"Lorem ipsum dolor sit amet"
    }
}

我会这样做:

{
    "Name":"AlbumName",
    "Description":"Some description for the album",
    "ReleaseYear": "1992",
    "Artist" {
        "Id":"12345"
        }
    }

第二个选项实际上是有一个特定于此的路线/网址... 例如: /api/艺术家/{艺术家}/专辑 然后只需将专辑对象发布到该网址即可。

但正如我所说..我真的不确定这里是对是错..或者是否有任何标准方法来处理这个问题?

提前致谢!


我会建议这样的事情。

POST /musicstore/artist/343/albums

{
    "Name":"AlbumName",
    "Description":"Some description for the album",
    "ReleaseYear": "1992",
}

创建资源作为艺术家343的专辑集合的子项的动作隐含地创建了艺术家和专辑之间的关系。无需在有效负载中指定它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

REST api,具有关系的 POST 实体? 的相关文章

  • 为移动应用程序创建 API - 身份验证和授权

    Overview 我正在寻找为我的应用程序创建一个 REST API 最初 主要目的是供移动应用程序 iPhone Android Symbian 等 使用 我一直在研究基于 Web 的 API 的身份验证和授权的不同机制 通过研究其他实现
  • 在 C# 控制台应用程序中使用 HttpClient 使用 WEB API

    我使用 MySQL 数据库在 Visual Studio 2015 中创建了一个 Web API API 运行完美 所以我决定做一个控制台client http www c sharpcorner com article web api w
  • 如何将未知字段类型的数据解组为 JSON

    我有这些 结构 type Results struct Gender string json gender Name struct First string json first Last string json last json nam
  • Azure API Manager 将所有内容公开,摆脱 Ocp-Apim-Subscription-Key

    我有一些通过 Azure API 管理代理的 REST API 出于某种原因 我希望将其公开以应对所有请求 从开发人员的角度来看 我想摆脱在标头 或请求 中设置密钥 Ocp Apim Subscription Key XXXXXXXXXXX
  • C# CreatePipe() -> 受保护的内存错误

    我尝试使用 C 创建管道 代码非常简单 但是当行与CreatePipe 调用被执行我得到一个System AccessViolationException并出现以下错误消息 尝试读取或写入受保护的内存 这通常表明其他内存已损坏 这是我的表单
  • 以编程方式获取 Android 设备的所有 RAM 内存,而不仅仅是分配给用户进程的内存

    我有一台设备 我确信它的 RAM 内存为 512 MB 希望能够以编程方式检索该值 512 MB 到目前为止 我在互联网上遇到的主要是这两种方式 https stackoverflow com a 16143065 1521264 http
  • 如何触发应用程序通过 REST 服务获取数据?

    我正在寻找一种方法来触发应用程序从远程 REST 服务获取数据 该方法不需要轮询 iOS 推送通知似乎不是一个选项 因为它可以被用户停用 然而 我可能是错的 是否有最佳实践来完成此任务 实际上 推送通知是可行的方法 在 ios8 及更高版本
  • 如何在 Swift 4 中传递 Encodable 或 Decodable 作为参数?

    我正在学习 JSONParsing 我遵循了教程 得到的是这样的 guard let url URL string http localhost test api public api register else return var re
  • 使用curl登录并获取会话

    你好 我需要以某种方式获得最高区域的兴趣和随着时间的推移的兴趣 或更好 所以我发现我们必须登录才能导出数据有人可以给我一个使用我们的谷歌用户名和密码执行此操作的示例吗 也许使用curl来导出数据 或者是其他东西 感谢您的关注 亚当 拉马丹
  • 为什么“FormDataMultiPart”类型参数被区别对待

    我正在编写一个小网络应用程序 将文件上传到网络服务器 我一切正常 但令我感到困惑的是 几乎所有从客户端 浏览器 发送的参数都必须在服务器端注入单词 FormDataParam except FormDataMultiPart类型参数 有人可
  • 用于 RESTful 轨道应用程序的简单面包屑

    是否有任何辅助方法 除了默认 Rails 面包屑导航 http wiki rubyonrails org rails pages Breadcrumbs 为特定页面动态生成面包屑导航 而无需在 RESTful 应用程序中传递琐碎的参数 也就
  • IB Java API:提取多个合约的股票数据(实时柱)

    我正在对算法交易和 IB API 进行一些自学和实验 我决定使用 Java 但我愿意切换到 C 我浏览了一个在线教程 该教程将引导您完成下面所示的代码 但我想知道是否可以将其扩展到一只股票之外 我想浏览所有 SP500 股票并检查股票数据
  • AutoMapper.Mapper 不包含 CreateMap 的定义

    这可能是一个基本问题 但想知道我没有得到 AutoMapper Mapper CreateMap 方法 我使用了错误的 AutoMapper 参考 包吗 谢谢 静态版本CreateMap方法在 4 2 中已弃用 然后在版本 5 0 中从 A
  • 以 RESTful 方式增加资源计数器:PUT 与 POST

    我有一个带有计数器的资源 为了举例 我们将该资源称为profile 计数器是数量views对于该配置文件 Per the 休息维基 http rest blueoxen net cgi bin wiki pl HttpMethods PUT
  • 获取 2 个字母的州/省缩写

    因此 我使用 GeoNames API 获取国家 地区和州 省信息 并使用这些信息填充表单中的选择下拉列表 此表单将其信息提交给 SOAP Web 服务 并且 SOAP 服务器仅理解 2 个字母形式的国家 地区和州 省数据 IE CA 代表
  • R 的 ggplot2 有 Python API 吗? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我的问题就像标题一样简单 我想使用R s ggplot2但我所有的数据处理都是在Python 有没有Py
  • 如何获取数组作为 GraphQL 解析器的输入

    我想得到一个字符串数组ids查询变量中的参数并在我的解析器中使用它 下面是我的代码 People resolver ts import Resolver Query Mutation Args from nestjs graphql imp
  • 在 Postman 中连接 ECONNREFUSED

    我试图通过邮递员测试我的 REST API 但收到以下错误 这是我编写的第一个 REST API 我对邮差很陌生 所以不确定我做错了什么 下面是我尝试使用此 URL 在邮递员中调用的代码 我在 URL 中传递两个日期参数 https loc
  • Spring @RequestMapping 带有可选参数

    我的控制器在请求映射中存在可选参数的问题 请查看下面的控制器 GetMapping produces MediaType APPLICATION JSON VALUE public ResponseEntity
  • Asp.NET WebApi 中类似文件名称的路由

    是否可以在 ASP NET Web API 路由配置中添加一条路由 以允许处理看起来有点像文件名的 URL 我尝试添加以下条目WebApiConfig Register 但这不起作用 使用 URIapi foo 0de7ebfa 3a55

随机推荐

  • 如何将主题应用到 元素

    我有一个扩展 PreferenceActivity 的活动 我的主题 android theme android style Theme Light NoTitleBar Fullscreen 应用于清单文件中的应用程序级别 除了 Pref
  • 为 PhoneGap 应用程序嵌入 PDF 查看器

    如何为phonegap 应用程序嵌入PDF 查看器 我决定使用 PhoneGap Sencha Touch 开发适用于 iOS 和 Android 的应用程序 我只有 iOS PhoneGap 经验 对我有用的解决方案是制作一个插件 弹出一
  • 如何在 C# 中将字符串解码为 XML 字符串

    我有一个包含 XML 描述的字符串 来自 CDATA 元素 我需要使用 C 将此字符串解码为一个可以正确显示字符的新字符串 现有字符串 lt xml version 1 0 encoding UTF 8 standalone yes gt
  • XNA 3d 物理引擎 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我正在寻找 XNA 的 3
  • Android jacoco 覆盖率空与 gradle

    我正在尝试让 jacoco 为我的 android 测试项目创建一个代码覆盖率报告 我在 build gradle 中有以下内容 apply plugin com android application apply plugin jacoc
  • 使用 osascript -e“显示通知”时更改通知图标

    我正在尝试为 emacs 编写一个插件 使用 OS X 的本机通知显示来显示通知 我遇到过terminal notifier这是可行的 但它是一个依赖项 并不适用于每台 Mac 另外 应该让用户知道他们需要安装该软件包 我想做的是调用一个进
  • 在 IE8 标准模式下对 IE8 中呈现的本地 html 文件使用 BASE 元素时缺少样式表/脚本/图像

    我们有一些 HTML 页面 本地的 而不是 Web 服务器上的 它们使用 BASE 元素来标识包含一堆常见样式表和图像的特定基本目录 这是一个示例 页面存储在 c temp html test html 中 资源目录是 c temp res
  • std::unique_ptr reset() 操作顺序

    Calling void reset pointer ptr pointer noexcept 调用以下操作 给定 current ptr 由 this 管理的指针 按以下顺序执行以下操作 保存当前指针的副本 old ptr current
  • 如何从命令行使用 BigQuery REST API?

    尝试向 BigQuery REST API 之一发出普通 GET 请求会出现如下错误 curl https www googleapis com bigquery v2 projects PROJECT ID jobs JOBID Outp
  • 关于异步套接字操作和消息帧的.NET问题

    我一直在到处寻找有关如何处理 TCP 消息帧的示例 我看到许多示例 其中 NetworkStreams 被传递到 StreamReader 或 StreamWriter 对象中 然后对 n 分隔消息使用 ReadLine 或 WriteLi
  • 如何避免硬编码?在装饰器中

    我读过了 如何实现打字稿装饰器 和多个来源 但有些事情我无法使用装饰器完成 class FooBar public foo arg void console log this this bar arg private bar arg voi
  • 为什么 substring() 方法 substring(start_index(inclusive), end_index(exclusive)) [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 为什么子字符串将起始参数作为索引 第二个参数作为从开头开始的长度 换句话说 1 2 3 4 5 lt Length from beginning A B C D E 0 1 2 3 4 l
  • 后台线程如何挂起UI线程?

    我正在使用后台线程通过 USB 初始化仪器 当我尝试打开设备时 用户界面挂起 我希望后台线程在设备上调用 Open 时暂停 但 UI 线程不会 我正在测试这个 没有来自后台线程的 UI 交互 我不知道如何调试这个问题 而且这个问题太宽泛了
  • 如何从C中的stdout读取

    我需要写一个C程序 myprogram 检查其他程序的输出 它基本上应该像这样工作 otherprogram myprogram 但我找不到如何逐行读取stdout 或管道 然后将所有这些写入stdout 一个程序的stdout成为下一个程
  • numpy 对数组进行切片而不复制它

    我的矩阵中有大量数据x我需要分析一些子矩阵 我使用以下代码来选择子矩阵 gt gt gt import numpy as np gt gt gt x np random normal 0 1 20 2 gt gt gt x array 1
  • Matlab 上的图像去模糊

    我是 MatLab 新手 一直在玩并阅读帮助指南 但我似乎无法解决这种情况 我用高斯算法去除了噪音 这是成功的 但我没有设法让图像变得清晰 我尝试使用理查森 露西去模糊算法 但它不起作用 知道如何解决这个问题吗 提前谢谢 这是我到目前为止所
  • C# HttpWebResponse 彗星问题

    我想知道如何读取 HttpWebRequest 和 HttpWebResponse 的持久连接 问题似乎是 GetResponseStream 函数在返回之前等待服务器连接关闭 有没有其他简单的方法来读取彗星连接 不起作用的例子 get t
  • Google Cloud Functions:如何共享源代码?

    我有一个节点服务器和多个控制器 它们在该目录中执行数据库操作和帮助程序 例如 用于电子邮件 我想在我的函数中使用该目录中的源代码 假设以下目录结构 src server app controllers email helper js fns
  • 1 和 0 的数量相等的最大子矩阵

    给定一个大小矩阵mxn仅包含 0 和 1 我需要找到其中 1 和 0 的数量相等的最大子矩阵 蛮力方法是O m 2 n 2 我们还能做得更好吗 我尝试应用动态规划 但找不到任何最佳的子结构 我相信这里讨论了这个问题的类似一维版本 用于查找最
  • REST api,具有关系的 POST 实体?

    我遇到一个问题 我无法决定如何继续处理这个问题 我需要知道是否有任何标准方法来解决这个问题 或者你们是否对这个问题有任何很好的意见 问题是我已经开始构建一个非常基本的 API 来用于学习目的 API 是一个简单的音乐商店 该商店有一些需要艺