我需要知道如何决定什么是资源,什么是子资源。我只需要为一些表创建uri。假设我有一个student表和studentclass(它给出了学生注册的班级的名称,可能还有更多的详细信息)表(N:1)。
我将使学生成为主要资源,并设计如下uri
http://home/someapi/v1/student/1/
遵循rest方法构建uri
Qus 1:要访问studentclass,我必须使用下面显示的哪个uri
1.http://home/someapi/v1/studentclass?studentid=1 or
2.http://home/someapi/v1/student/1/studentclass
我必须把学生班视为一个单独的资源吗?
和
Qus 2:假设表之间存在N: N关系,那么uri的设计应该如何?
我认为学生班级(或简称为“班级”)应该是一种不同的资源,因为班级可以在学生之间共享。因此,这个Uri将满足您的需要:
/v1/学生类?
我建议处理两个资源:学生
和类
。
您可以使用以下 URI 获取学生
:
http://home/someapi/v1/students/1
请注意这里的复数,如果您想了解为什么应该使用复数:http://blog.apigee.com/detail/restful_api_design_plural_nouns_and_concrete_names/,请阅读本文。
如果一名学生
可以注册到一个类
,则它可能是该学生的属性,因此您可以返回以下JSON文档(例如):
{
"student": {
"id": 1,
"firstName": "John",
"lastName": "Doe",
"class": {
"id": 10,
"name": "Room Y"
}
}
}
您可以获取具有以下 URI 的特定类
:
http://home/someapi/v1/classes/10
您可以使用以下 URI 获取给定班级的所有学生:
http://home/someapi/v1/classes/10/students
现在,如果您在学生
和类
之间有N-N关系,它将改变我关于JSON中学生
表示的第一个提议。实际上,class
关系将成为class
资源的集合,而不是学生
的嵌入属性,您应该使用以下URI:
http://home/someapi/v1/students/1/classes
意思是“检索学生#1的所有课程”。
您可以公开班级
和学生
资源。无需决定哪一个是主要的,因为它们描述了两种不同的东西。拥有 /students
和 /classes
允许您创建学生
和班级
,您可以链接它们等。
最后一点,建议使用查询参数(< code >?foo=bar)进行过滤。
假设我有一个班级: 我有另一个类,其中用户登录,并且根据他是管理员还是普通用户,用户可以访问有限的枚举列表。我知道我可以从类中获取所有枚举的完整列表,但是在枚举类不知道用户信息的情况下,通过某些标准过滤这些枚举的优雅方法是什么? 编辑:以下是它今天的样子: 我正在返回1000个事件的完整列表,而管理员应该只看到有限的数量。
问题内容: 我有一个现有的Java / JSF网站,屏幕上的所有文本都是通过 来自属性文件的,该文本将从applicaltion.properties中提取。 对于这些的运行时可配置子集,我想从其他位置(通过Web服务进行CMS)中提取字符串。看一下ResourceBundle类,大概有一个基础设施,可以委派给父ResourceBundle。 我想要这样的东西 我已经尝试过了,parent是空的,
因此,我正在使用很棒的MPAndroid图表库来制作一个简单的LineChart。我能够使用GitHub上的示例项目大量定制它。 问题是,当我将它移到我自己的代码中时,某些方法不再能够解决: 特别是mlineChart.setExtraOffsets()和mlineChart.setAutoScaleminMaxEnabled()。可能还有其他的,但这是我注意到的仅有的两个。 不过,其他一切都很好
问题内容: 我有一个这样的表: 我正在尝试删除具有3个以上具有相同ID的名称的记录,但要删除所有记录。因此,我试图得到这样的东西: 我不了解如何编写此查询。我已经达到了保留一个记录但没有记录阈值的程度: 给我: 有什么建议?哦,对了,我不在乎合并时会保留哪些记录。 问题答案: 您可以使用CTE做到这一点
请考虑CSV中的以下输入示例 输出应如下: 条件是:如果公司名称在输入中的不同记录中重复,则在输出 CSV 中应为空。 请让我知道这是否可以在 Mule 的数据编织组件中处理 下面是更新的代码
有一个对象,其中用户以数组的形式存在,如何使用特定id更新用户,而不发送整个用户数组。 当同时更新不同用户的数据时,发送的数据被覆盖,但必须不被覆盖