Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在RESTful应用编程接口中表示关系

在RESTful应用编程接口中表示关系
EN

Stack Overflow用户
提问于 2011-11-01 20:50:20
回答 2查看 144关注 0票数 0

我正在使用RESTlet为一组相关的资源设计一个RESTful应用程序接口。

例如:

人员(/people/124)资源具有属性"favoriteThing“,该属性可以是汽车、食品、玩具。

现在假设API的用户想要通过向/person/124/favoriteThing URL执行POST来更新此属性。

但是,为了处理这个请求,我需要在数据存储中记录这个新关系(需要一个键(Kind,Id))。

所以我有两个麻烦的选择:

1)希望在帖子的正文中有一个URL (这似乎是RESETful),但是我如何才能干净利落地将URL转换为Datastore Key,requires (Kind,ID)。

2)在POST的主体中期望(Kind,ID) (非常简单),但这允许URL以外的其他内容作为API中的资源标识符

对此问题最具RESTful的解决方案是什么?也许是我考虑过的以外的事情。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-01 22:37:54

(我在这里假设使用Python,因为它更简洁)

将'thing‘本身作为POST参数发布到/person/124/favoriteThing对我来说似乎是正确的。

所以现在你的问题是,如何干净利落地实现它?那么,URI中的“124”是否是Person的键?你可以通过强制转换将Key()编码成一个字符串,例如。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
uri = '/person/%s' % str(person.key())

一个很好的技巧是可以在WSGIApplication构造函数中使用正则表达式分组:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def main():
  application = WSGIApplication(['/people/(.*)', PersonHandler], debug=True)

然后,当你在你的PersonHandler上发布帖子时,你可以拆分相关的路径:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class PersonHandler(RequestHandler):
  def post(self, path):
    (key, property) = path.split('/')
    person = Person().get(Key(key))
    # check that property is valid, get POST param and change it
票数 1
EN

Stack Overflow用户

发布于 2011-11-01 23:22:39

要扩展Moishe的响应,实际上可以将部分路径定义为变量(至少在Python中是这样),而不是解析路径。

所以要处理'.../person/124/favorite':

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class PersonHandler(webapp.RequestHandler):
    def get(self, person_key, favorite):        
        person = Person.get(db.get(person_key))
        person.Favorite = favorite
        person.put()

application = webapp.WSGIApplication([('/person/([^/]+)/([^/]+)', PersonHandler)],
                                                                         debug=True)

def main():
    run_wsgi_app(application)

if __name__ == "__main__":
    main()
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7972715

复制
相关文章
接口测试之RESTful案例应用
在接口测试之RESTful中对RESTful做了详细的介绍,在前面的基础上继续完善案例的应用。在接口测试中,当客户端请求服务端,服务端响应返回给客户端,返回的这些这些信息除了响应头,还有就是业务状态码,msg以及数据,比如登录一个系统成功后,它返回的内容可能是:{"status":0,"msg":"ok","datas":{"userid":1001,"name":"wuya"}},这里还是看一个案例的应用,比如登录抽屉网失败,看服务端返回给客户端的信息,如下图所示:
无涯WuYa
2019/08/15
5580
在Python中如何基于接口编程
软件行业,唯一不变的就是变化。产品经理会变,产品需求会变,代码同样要跟着变。不同的代码设计,变化所带来的工作量更是不同,有的每改一次需求,近乎一次重构,而有的只需要修改一个配置文件,或者在类里添加一行代码。当然比较好的代码设计,由于有着良好的可扩展性,高内聚,低耦合,因而易维护, 以少变应万变。如果想要有好的代码设计,就需要我们学习设计模式。今天为你分享的是在Python中,如何基于接口编程。
somenzz
2020/11/25
1.1K0
IP地址的三种表示格式及在Socket编程中的应用
使用TCP/IP协议进行网络应用开发的朋友首先要面对的就是对IP地址信息的处理。IP地址其实有三种不同的表示格式:
黄规速
2022/04/14
2.5K0
IP地址的三种表示格式及在Socket编程中的应用
openshift/origin工作记录(2)——RESTful编程接口使用
该文介绍了如何使用RESTful编程接口对OpenShift进行操作,包括获取工程列表、获取工程详情、创建命名空间等操作。同时,还介绍了如何获取用户账号的token,以便进行更高级的操作。
胡了了
2017/12/28
1.3K0
openshift/origin工作记录(2)——RESTful编程接口使用
RESTful 接口
REST 将资源的状态以适合客户端的形式从服务端发送到客户端(或相反方向)。在 REST 中,通过 URL 进行资源定位,用 HTTP 动作(GET、POST、DELETE、PUT等)描述进行操作,完成功能。
Jimmy_is_jimmy
2023/07/31
1K0
RESTful 接口
Python在接口测试中的应用
接口测试的方式有很多,可以使用的工具有jmeter,postman,soapUI等,也可以自己写代码进行接口测试(Python,java,go等等),工具的使用相对来说都比较简单,开箱即用。但如果接口中定义了一些需要加解密、数字签名等一些动态计算时,工具就很无助,唯有写代码进行实现测试。所以要根据接口协议,有针对性的进行选择工具,当工具不适合项目时需要进行工具开发。对于工具开发选择语言,语言本身没有优劣之分,选择自己擅长的和合适的。相对于java,go语言,Python不需要编译,而且支持的库很多,是其特点;其支持http协议接口的有urllib,urllib2以及requests库,支持websocket协议的库有websockets、websocket-client,支持grpc的库有grpcio、grpcio-tools,以及支持图形界面的PyQt5。本文中使用的Python版本为3.9.0,下面简单介绍下http、websocket、grpc接口示例,最后介绍使用PyQt5打造自己的测试工具。
芯动大师
2022/11/15
3K0
Python在接口测试中的应用
神经网络在关系抽取中的应用
本文介绍了关于神经网络模型压缩、加速和优化的一些研究进展。作者从模型压缩、加速和优化三个方面进行介绍,并分别列举了每项研究中涉及的技术、方法和案例。通过对比分析,指出各种方法的优缺点和适用场景。此外,作者还对未来的研究趋势进行了展望,认为将模型压缩与加速技术结合是未来研究热点。
sparkexpert
2018/01/09
1.4K0
神经网络在关系抽取中的应用
restful接口规范
0902自我总结 restful接口规范 1.一般都采用安全协议(接口都是操作数据的):https http协议 应用层协议 请求与响应规范:首行 - 头 - 体 特点:无状态、无连接、请求永远是客户端到服务器端、ssl 而 https协议 相对于http协议多了个ssl安全套接层 #https比http传输速度要蛮 #https比http数据更加安全 2.体现接口的关键字 https://api.xxx.com/books/ 3.接口操作的数据称之为资源:采用资源名称的复数 https:
小小咸鱼YwY
2019/09/11
1.2K0
python在rest接口测试中的应用
    近期一直在学习python,这两天正好做rest接口的接口测试,就尝试着用python写一个测试rest接口的通用类,省去用工具的繁琐,也显得比较高大上一些。
py3study
2020/01/07
1.2K0
RESTful接口测试
RESTful风格的接口与测试工程师有什么关系呢?要想真正理解RESTful风格的接口与测试工程师的关系,就必须先弄清楚RESTful风格的接口有什么优点。
FunTester
2023/08/04
2430
RESTful接口测试
​图表示学习技术在药物推荐系统中的应用
本文约6500字,建议阅读13分钟 本次分享的题目是图表示学习技术在药物推荐系统中的应用。 主要包括以下四个部分: 研究背景与挑战 判别式药品包推荐  生成式药品包推荐 总结与展望 01、研究背景与挑战 1. 研究背景 医疗资源总体不足,分布不均带来沉重压力 药物推荐是智慧医疗的一个子问题,首先从智慧医疗的大背景说起,在我国智慧医疗存在紧迫性,随着人口增长、老龄化加剧,人们对于高质量医疗服务的需求不断攀升。图中两组数据,一是全国医疗机构的就诊人数在 60.5 亿人次,同比增长 22.4%;二是柳叶刀上关于
数据派THU
2023/02/27
1K0
​图表示学习技术在药物推荐系统中的应用
函数式编程在Redux/React中的应用
本文简述了软件复杂度问题及应对策略:抽象和组合;展示了抽象和组合在函数式编程中的应用;并展示了Redux/React在解决前端状态管理的复杂度方面对上述理论的实践。这其中包括了一段有趣的Redux推导。 软件复杂度及其应对策略 软件复杂度 软件的首要技术使命是管理复杂度。——代码大全 在软件开发过程中,随着需求的变化和系统规模的增大,我们的项目不可避免地会趋于复杂。如何对软件复杂度及其增长速率进行有效控制,便成为一个日益突出的问题。下面介绍两种控制复杂度的有效策略。 对应策略 抽象 世界的复杂、多变和人
美团技术团队
2018/03/13
2.2K0
函数式编程在Redux/React中的应用
moco在接口自动化中的应用
在上一篇moco系列文章:moco常用配置参数及实战,主要介绍moco常用参数配置及实战小例子。今天主要介绍,moco在接口自动化中如何应用。
可可的测试小栈
2020/12/31
9580
Java多线程编程在JMeter中应用
在最近的工作中,遇到一个需求:在JMeter中生成一个全局唯一变量,获取一次自增x(这个不确定,可能根据响应信息)。这不是我的需求,只是从同事那边听说到的,周末没事儿想起来这个事儿。按照我的方案肯定是用Java或者Groovy去实现这个需求,肯定不会选JMeter。
FunTester
2020/07/21
9800
Java NIO在接口自动化中应用
在上期的文章插上NIO翅膀,FunTester飞上天中,我学习了Java NIO的相关基础,今天我来分享一下自己实践的结果。
FunTester
2021/09/14
2960
RESTful接口设计风格
其中PUT和PATCH比较相似,都是做更新操作。PUT一般用于全部修改进行替换操作,PATCH用于更新部分字段(资源)操作。
砒霜拌辣椒
2023/08/23
1670
RESTful 接口设计指南
网络应用程序,分为前端和后端两个部分,当前的发展趋势,就是前端设备层出不穷,如手机、平板、桌面电脑等等。
越陌度阡
2020/11/26
6750
RESTful接口入门 转
从下面的图片可以看出,当我们需要把相同的数据展示到不同的界面上时,提供一个可以访问后台的接口,前台只负责将数据友好的,华丽的展示出来即可。而不需要为每一个前台都实现很多的后台逻辑。 
wuweixiang
2018/08/14
8370
【集合论】关系表示 ( 关系矩阵 | 关系矩阵示例 | 关系矩阵性质 | 关系矩阵运算 | 关系图 | 关系图示例 | 关系表示相关性质 )
文章目录 一、关系矩阵 二、关系矩阵示例 三、关系矩阵性质 四、关系矩阵运算 五、关系图 六、关系图示例 七、关系表示相关性质 一、关系矩阵 ---- A = \{ a_1, a_2 , \cdots , a_n \} , R \subseteq A \times A R 使用 关系矩阵 表示 : M(R) = (r_{ij})_{n\times n} 关系矩阵取值 : M(R)(i, j) = r_{ij} =\begin{cases} 1, & a_i R a_j \\ 0, & 无关系 \end
韩曙亮
2023/03/28
3.1K0
【集合论】关系表示 ( 关系矩阵 | 关系矩阵示例 | 关系矩阵性质 | 关系矩阵运算 | 关系图 | 关系图示例 | 关系表示相关性质 )
详解GO的层级关系在富集分析中的应用
对于Gene ontology 而言,目前共有2万多个Go trems。 做完富集分析后,我们可能会得到几百甚至几千个富集到的GO terms, 这样的一个数据量对于人工一个个检索而言,仍然是一个艰巨的任务。为了有效的利用GO富集分析的结果,我们势必需要对结果再次进行过滤。
生信修炼手册
2020/05/08
3K0
详解GO的层级关系在富集分析中的应用

相似问题

RESTful应用编程接口设计

23

RESTful应用编程接口架构

22

RESTful应用编程接口建议

22

RESTful应用编程接口文档

40

建模RESTful应用编程接口

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文