首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

REST API 设计最佳实践:如何构建、设计和使用 API

但是,也曾遇到过一些让 REST 蒙羞 API 例子,错误使用 HTTP 状态码、纯文本响应、不一致模式、插入端点中动词......尽管如此,你可能还在想:“但我按照您推荐方式,响应体中发送了错误详细信息,那么问题出在哪里呢?” 让给你讲个故事吧。..."error": "Expected at least three items in the list." } } 因此,必须检查状态代码和临时状态字段,以确保一切正常才能读取数据。...有一天,当我REST API集成到我一个项目中时,每次调用都收到HTTP 500内部错误。...所使用端点看起来像这样: POST: /buckets 当时非常生气,怎么也想不明白究竟哪里出了问题。最后,原来是因为缺少了尾随斜杠导致服务器出错!

33840
您找到你想要的搜索结果了吗?
是的
没有找到

后端开发使用pycharm技巧(推荐)

作为一名后端开发,猜你桌面上一定打开着一系列软件,用作开发调试工具,比如navicat数据库连接工具,postman接口调试工具,pycharm代码编写IDE,以及其他一些工具。...这里新建一个数据库作为演示,可以看到,连接成功可以显示数据库中所有的表,表字段,字段类型,字段注释,很齐全,打开表,数据展示也很清晰,也可以直接像navicat那样直接对表数据进行可视化增删改查操作...那么这个HTTP Client在哪里呢。 ? 打开之后 ? 这些功能相信大家都应该再熟悉不过了,与postman是一样,填写一个http请求一些必须请求就可以发送请求,获取响应信息。...先写请求方式、url,再写请求头信息,再写请求体(如果有),也可以点击Add Request快速生成请求模版,点击请求方法左边小箭头就可以运行,查看结果,我们这里写了两个restful api来测试一下...对于这个功能,觉得完全可以替代postman,我们可以为我们每一个数据模型test下新建一个http请求文件,定义好GET、POST、PUT、DELETE请求信息,我们要测试接口时,直接点击就能运行

68920

Taro 小程序开发大型实战(七):尝鲜微信小程序云(下篇)

,对于支付宝小程序和 H5,我们则放在下一使用 LeanCloud Serverless 来解决。...所以我们这里强烈建议,正规环境下,关系型数据库应该建外键,JSON 数据库也至少应该保存 userId。...条件下执行获取帖子列表操作,对于支付宝小程序和 H5,我们则放在下一使用 LeanCloud Serverless 来解决。...,对于支付宝小程序和 H5,我们则放在下一使用 LeanCloud Serverless 来解决。...第六剑:定义对应 reducers 文件 因为这里 SET_POST Action 我们在上上 “大” 中创建帖子时已经定义了,所有 “这一剑” 中我们无需添加额外代码,复用之前逻辑就好。

2.6K10

Vue2+VueRouter2+webpack 构建项目实战(四)接通api,先渲染个列表

甚至过程中关闭了代码审查,否则通不过校验。...,很轻松页面渲染成功了。...每一个团队规范都是不一样,都是各有所长,重要是,条理性。 调用api.js 第二中,我们src/config目录下面建立了一个api.js空文件。第三中没有使用。...$api = api 插入这两行代码,就引用好了api.js,并且,把它绑定到了全局,然后我们就可以各种地方使用这个文件了。虽然这个文件是空。 可能部分朋友不知道插入到文件哪里去。...如果你使用过jquery,应该熟悉其中AJAX方法。当然,vue中,我们就不考虑使用jquery了。我们使用superagent这个组件。

40110

记一次视频抓包m3u8解密过程

情景:女友买学习视频将在一个月后到期(到期后下载本地也无法看),让帮忙把视频下载下来,之前抓过m3u8文件下载过视频切片合成是一个完整视频,以为这次任务非常简单~ 然鹅,查看一下app信息,...已经被加固处理(伪加固) 已经加固了,暂时不考虑脱壳编译 于是开始抓包,安卓手机没有root,抓取某课app时由于 检测到代理导致某课app里面没网络,之前玩安卓逆向时候偶然发现 部分APP...app,有的安装后会闪退 抓包部分截图: 上面是抓到m3u8信息,根据之前到这一步应该成功了,密钥和视频切片ts文件应该就可以合成完整视频 但是访问红色部分key却是显示404,视频切片能下载但是无法解密...看到了一篇关于key被访问了一次就删除博客,不得不让猜想,是不是app客户端访问拿下密钥文件,app前端下载资源文件进行解析然后播放,既然访问了一次,拿到抓包数据也就是已经被访问过了...,在这里已经app缓存目录看了下,乱码很多不知道密钥文件放在哪里,所以我整个流程用python写下来了 现在写到 登录->获取用户信息及token->获取所有课程->某个课程课程->视频

73020

关于“Python”核心知识点整理大全58

我们base.html中添加这种链接,让每个页面都包含它; 我们将它放在标签{% if user.is_authenticated %}中,使得仅当用户登录才能看到它: base.html...这里重点是创建能够正确工作网站,因此几乎没 有设置任何样式。确定所需功能都能正确运行,我们将设置这个网站样式,使其看起来更 专业。...19.3 让用户拥有自己数据 用户应该能够输入其专有的数据,因此我们创建一个系统,确定各项数据所属用户,再 限制对页面的访问,让用户只能使用自己数据。...装饰器(decorator)是放在函数定义前面的指令,Python函数运行前,根据它来修改函数代码行为。下面来看一个示例。 1....我们login_required()作为装饰器用于视图函数 topics()——它前面加上符号@和login_required,让Python在运行topics()代码前先运行 login_required

9810

实践Jenkins集成Cobertura自动化构建SpringBoot工程

但是,系统上线故障还偶有发生,那么如何才能将系统代码质量提高一个档次做到上线0故障目标呢?...想在编码时候,考虑正常和异常情况时间分配比例应该是30%:70%。...Spring Test框架中MockMvc实现了对Http请求模拟,能够直接通过网络形式,转换到Controller层Api调用,这样提高测试效率同时可以不依赖外部环境。...这里,MockMvc对象提供一组工具函数用来执行assert判断,都是针对web请求判断。这组工具使用方式是函数链式调用,允许程序员多个测试用例链接在一起,并进行多个判断。...Cobertura 是一种开源代码覆盖率检测工具,它通过检测基本代码,并观察测试包运行时执行了哪些代码和没有执行哪些代码,并最终以html或者xml格式来呈现最终测试度量指标结果(比如分支覆盖率和代码行覆盖率

3.3K30

接口测试之Postman使用全指南(原来使用 Postman测试API接口如此简单)

创建测试 – 测试检查点(如验证HTTP响应状态是否成功)可以添加到每个API调用中,这有助于确保测试覆盖率。...区域输入 链接 3、点击 “Send”按钮 4、你看到下方返回200状态码 5、正文中应该有10个用户结果,表明您测试已经成功运行。...201,显示为创建成功 3、Body里返回数据 如何请求参数化 数据参数化是Postman最有用特征之一。...2、你看到Get请求Pass状态; 3、由于我们没有任何Post测试,所以应该会出现请求没有任何测试消息。...最好将环境放在与Step5 导出集合相同文件夹中。 Step 7 ) 导出Environment 到集合文件夹,现在回到命令行,目录更改为保存集合和环境位置。

1.8K10

推荐学Java——初识数据库

通过学习前面章节内容你应该对一个类(Class)结构应该掌握很熟悉了,那么反射中就提供了对应 API调用,如上图中常用反射对象,掌握他们写法和调用方式,并尝试着自己写一个类去反射,体验一下这个过程...我们前面所学过知识都是基础操作层面的,而接下来要学习内容都是完整体系化,举个例子:你微信头像修改了,换个手机之后头像依然是修改,那么你这个头像存放在哪里呢?...这就是我们要学习数据库相关知识,到这你应该明白了,原来头像是放在数据库,无论你是手机还是电脑登录微信,都会从数据库取你头像,所以你看到都是同一个头像。...我们是开发者,使用者才不关系头像存放在哪里,所以JDBC就是让我们明白这其中原理和基本操作方法(新增、删除、修改、查询)。 那么,常见数据库有哪些呢?...对于上面的每个流程,都有对应API,而不同框架封装暴漏出来API又有可能不同,这些都需要我们随机应变,不断学习。

2.1K40

ES学习笔记(三)新建索引

' -d '' 是请求方法,比如:GET、POST、DELETE、PUT等。 协议:http或者https。 主机地址。 端口 API路径。...如果我们仔细观察这个图,可以看出node-130点中0分片,和node-132点中1分片,它们边框是加粗,这说明它们是主节点,而边框没有加粗节点是从节点,也就是我们说副本节点。...添加索引字段成功,我们再使用GET查看一下索引,如图: ? 我们可以成功查询到新添加索引字段了。...索引关闭也很简单,请求方式如下: POST //_close 我们例子中,如果要关闭索引,降请求方法改成POST,然后发送如下请求: http://192.168.73.130:9200.../orgnization/_close 打开索引 与关闭索引相对应是打开索引,请求方式如下: POST //_open 我们例子中,如果要打开索引,降请求方法改成POST,然后发送如下请求

45630

做好内容安全检测,和风险说「再见」!(上)

} 上面的代码还可以优化一下,就是请求云函数代码封装成一个函数。...如下所示,不封装也是没事,只是习惯性封装一下,如果其他地方也用到该云函数,那么直接调用一下就可以了 避免写重复代码。...如果你说你不知道,没有处理过,对于候选人,那肯定是没有信服力,无论是成功状态还是失败状态,都是应该有对应用户提示。...而小程序秘钥 AppSecret是不应该放在小程序端,那样是不安全,无论是HTTPS方式还是云调用模式,都绕不过后台请求微信提供内容安全接口,然后返回给小程序端。...其实在小程序云开发中,还提供了一种更简便方法,那就是云调用,它是小程序·云开发提供云函数中调用微信开放接口能力,只需简单进行配置一下就可以了。 限于篇幅所致,放在下一介绍。

1.3K10

API测试之Postman使用全指南(原来使用 Postman测试API如此简单)

创建测试 - 测试检查点(如验证HTTP响应状态是否成功)可以添加到每个API调用中,这有助于确保测试覆盖率。...区域输入 链接 3、点击 “Send”按钮 4、你看到下方返回200状态码 5、正文中应该有10个用户结果,表明您测试已经成功运行。...Step 5 )发送请求 1、完成上述信息输入,点击Send按钮 2、Status:应该是201,显示为创建成功 3、Body里返回数据 ?...Step 4) 单击Run按钮显示Run结果页。根据延迟不同,你应该在测试执行同时看到显示结果。 1、一旦测试完成,你就可以看到测试状态是通过还是失败,以及每个迭代结果。...2、你看到Get请求Pass状态; 3、由于我们没有任何Post测试,所以应该会出现请求没有任何测试消息。 ?

2.3K10

DjangoRestFramework,restful规范、APIview、解析器组件、Postman等

远程过程调用(RPC) 远程过程调用为 Web 服务提供一个分布式函数/方法接口供用户调用。这是一种较传统方式。通常, WSDL 中对 RPC 接口进行定义(类似于早期XML-RPC)。...2.2 使用域名       应该尽量API部署专用域名之下,意思就是给API专门做一个服务器。...https://example.org/api/ 2.3 版本提示       网站API可能一直更新,那么应该API版本号放入URL。...https://api.example.com/v1/       另一种做法是,版本号放在HTTP头信息中,但不如放入URL方便和直观。Github采用这种做法。...PUT(UPDATE):服务器更新资源(客户端提供改变完整资源)。 PATCH(UPDATE):服务器更新资源(客户端提供改变属性,更新部分资源意思)。

2.5K20

如何在购物 App 上实现商品快递物流信息展示

集成接口:购物App后端系统中,选定快递物流查询接口进行集成。这通常需要进行API调用。根据接口提供商文档和指南,配置API密钥和相关参数,以确保能够向接口发送请求并获取相应物流信息。...用户界面设计:购物App前端界面中,设计和添加物流查询相关功能。可以订单详情页面或用户个人中心中创建一个物流查询入口或按钮。用户点击该入口触发查询请求并显示物流信息。...查询和显示物流信息:当用户点击物流查询按钮时,调用后端API向快递物流查询接口发送请求,订单号或快递单号作为参数传递给接口。...测试和优化:集成完成,进行全面的测试,确保物流查询功能在不同场景和条件下正常工作。根据用户反馈和使用情况,进行优化和改进,提升用户体验。物流查询入口应该放在何处?...图片点击【查看物流】按钮,就调用物流查询API,传入该商品快递公司编码和物流单号,接口请求成功,返回物流数据就填充展示到页面当中。

21700

Taro 小程序开发大型实战(六):尝鲜微信小程序云(上篇)

云函数:可以用 Node.js 进行开发,自己编写对应后端逻辑,并把写好代码传到云端,然后小程序前端使用 API 进行调用。...序号3是云函数,即我们可以在这里面管理一些我们编写后端 Node.js 逻辑,它运行在云中,我们可以小程序端通过 API调用它们。...我们统一所有的 API 文件放到 api 文件夹里面,这便于我们日后代码维护工作, src 文件夹下创建 api 文件夹,在其中添加 user.js 文件,并在文件中编写内容如下: import...H5,我们则放在下一使用 LeanCloud Serverless 来解决。...context 对象包含了此处调用调用信息和运行状态,可以用它来了解服务运行情况。

2.2K20

ES学习笔记(三)新建索引

索引设置和字段都放在Body中。 比如我们创建一个名字叫组织机构索引,这个索引只有两个字段,一个id,一个name。并且这个索引设置为2个分片,2个副本。...如果我们仔细观察这个图,可以看出node-130点中0分片,和node-132点中1分片,它们边框是加粗,这说明它们是主节点,而边框没有加粗节点是从节点,也就是我们说副本节点。....png] 添加索引字段成功,我们再使用GET查看一下索引,如图: [image-20200426162306090.png] 我们可以成功查询到新添加索引字段了。...索引关闭也很简单,请求方式如下: POST //_close 我们例子中,如果要关闭索引,降请求方法改成POST,然后发送如下请求: http://192.168.73.130:9200.../orgnization/_close 打开索引 与关闭索引相对应是打开索引,请求方式如下: POST //_open 我们例子中,如果要打开索引,降请求方法改成POST,然后发送如下请求

1.7K10

谈谈项目的重构与测试

不过这种方式自己还不是特别满意,总感觉还是有点不太舒服,也说不清不舒服在哪里。那就干脆放弃它,使用别的方式吧。...测试代码不用关心项目的代码是同步还是异步。就算项目重构了,测试完全无感知,只要api没变,就可以继续工作。...比如说测试代码中import了项目中某个函数去获取一些数据,用于检查某个component更新操作是否成功重构过程中,该函数被重构成了协程。...这样一来,测试代码中就不能采用原来一样方式去调用了,也就是说测试代码受到了框架同步与异步影响,下一我们就来谈谈同步与异步测试,以及对于这种问题解决方案。...) 调用协程地方添加yield关键字 测试代码如何适应项目的重构 如果是api测试 测试中尽量不要调用任何项目中代码,它只专注于测试接口是否按照预期工作,具体里面是怎么样不需要关心。

1.1K10

当我们使用 MVVM 模式时,我们究竟在每一层里做些什么?

只是想说说我们究竟应该如何理解 M-V-VM,当我们真正开始写代码时,应该在里面的每一层里写些什么。 ---- MVVM,当然三层——M-V-VM。...其中 M 和 V 中文词语和英文单词是很好理解,但是 VM 就不是个日常用词;于是各种不知道应该放在哪里代码便一窝蜂全放进了 VM 中,最终导致了 VM 无限膨胀,成百上千行也是司空见惯啊!...于是那么多代码写到哪里呢? 答案:MVVM 之外。 ---- 我们代码不止 MVVM 三层 MVVM 不是应用程序架构,只是一个 GUI 类程序开发模式而已。...MVVM 模式按此理解,我们更能够代码放到合适位置,避免 VM 代码膨胀: 公共控件或者辅助代码应该抽出来放到别处,比如形成公共组件 一些非 UI 业务功能单独做,独立于 MVVM 模式,...---- MVVM,应该做什么,不应该做什么 这一内容部分参考自:MVVM standardization - W3Cgeek。

86510

RESTful API 设计最佳实践

作者:Philipp Hauer 项目资源URL应该如何设计?用名词复数还是用名词单数?一个资源需要多少个URL?用哪种HTTP方法来创建一个新资源?可选参数应该放在哪里?...资源集合URL上使用POST来创建新资源过程 客户端向资源集合URL /employees 发送POST请求。HTTP body 包含新资源属性 “Albert Stark”。...客户端会将JSON响应转换为JavaScript对象(通过调用var person = JSON.parse(response)),然后调用其属性。因此,最好遵循JavaScript代码通用规范。...版本号放在URL中是必需。如果您有不兼容和破坏性更改,版本号可以让你更容易发布API。发布新API时,只需增加版本号中数字。...这样的话,客户端可以自如迁移到新API,不会因调用完全不同API而陷入困境。 使用直观 “v” 前缀来表示后面的数字是版本号。

1.3K60
领券