首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    restful api设计最佳实践

    例如: https://www.iian.xyz/api/v1/users 交互结构 尽量采用json,提供替他类型的内容,使用accept声明可响应格式。...例如: // 查询用户列表 GET: https://www.iian.xyz/api/v1/users // 删除用户 DELETE: https://www.iian.xyz/api/v1/users...例如:GET: https://www.iian.xyz/api/v1/users?page=1&per_page=10&keywords=aaa 响应信息 错误必须同时发送错误信息。...根据执行情况,选择对应的状态码进行返回。可以使用自定义的状态码,但是也应该同时指明响应的状态码。具体的响应状态码含义可以,可以访问这个网站。...文档 文档应该声明接口的访问方法,接口地址,应该携带的请求头信息,响应格式,响应内容举例,错误码以及接口的使用场景。

    91510

    谷歌云端硬盘 文件:复制

    请求 HTTP请求 POST https://www.googleapis.com/drive/v3/files/ fileId / copy 参量 参数名称值描述路径参数fileIdstring文件的...可选查询参数fieldsstring您想要包含在响应中的字段的路径。如果未指定,则响应包括此方法专用的默认字段集。对于开发,您可以使用特殊值*返回所有字段,但是仅选择所需的字段即可获得更高的性能。...如果达到限制,请尝试删除固定的修订。(默认值:false)ocrLanguagestring图像导入期间用于OCR处理的语言提示(ISO 639-1代码)。...(默认值:false) 授权书 此请求需要具有以下至少一个范围的授权: 范围https://www.googleapis.com/auth/drivehttps://www.googleapis.com...可写的writersCanShareboolean具有唯一writer权限的用户是否可以修改文件的权限。未填充共享驱动器中的项目。可写的 响应 如果成功,此方法将在响应正文中返回一个文件资源。

    2.5K20

    使用数据库编程在PostgreSQL上构建石头剪刀布游戏

    以下是一些原因: 代码可以进行版本控制。这意味着您可以跟踪系统随时间的变化,轻松比较状态,并在需要时回滚。 机器可以理解代码。作为正式语言,机器可以处理、分析和执行代码。 代码可以进行测试和验证。...通过使用软件测试范式,您可以确保您的系统以自动化的方式按预期运行。 代码可以共享和重用,使我们能够在项目和团队之间传递成功的想法和实现。 代码拥有庞大的生产力工具生态系统。...-p 5432:5432 -d postgres:16 接下来,下载最新版本的 Atlas: curl -sSf https://atlasgo.sh | sh 创建一个名为 atlas.hcl 的文件来存储我们的项目配置...简而言之,当我们的用户调用 play 时,会发生以下情况: 对手选择一个随机的动作。 使用 turn_result 计算回合的结果。 将结果插入 games 表。...首先,为了享受将数据库模式 作为代码 管理的好处,我们应该将我们的模式定义和测试文件放在源代码控制下。

    57210

    如何设计出优秀的Restful API?

    HTTP状态代码是一系列标准化代码,针对http请求的可能会发生的各种情况。 服务器应始终返回正确的状态代码。 很多人喜欢把错误信息放在返回值中,典型的Code和Message,其实比较Low。...下面是Http状态码,可以合理利用处理各种请求反馈,将http自身的错误和服务器内部的错误,有一个很好的区分。 2xx(成功类别) 200 Ok表示GET,PUT或POST成功的标准HTTP响应。...3xx(重定向类别) 304 Not Modified表示客户端已在其缓存中有响应。 因此无需再次传输相同的数据。 4xx(客户端错误类别) 这些状态代码表示客户端已提出错误请求。...可以有效的跨版本访问,例如在v2版本,还需要访问v1版本的一些接口 9 总结 1,API接口都用小写 2,使用JSON通信 3,API带版本控制,比如v1,v2 4,使用Token令牌进行鉴权 5,路径中单词连接使用中划线...比如401表示用户身份认证失败,403表示你验证身份通过了,但是无权限操作资源。 在此,祝大家设计出优秀的Restful API!

    1.4K10

    大话JMeter2|正确get参数传递和HTTP如何正确使用

    下面就是大名鼎鼎的登录接口: Path: /api/v1/user/login Method: POST Header: { Content-Type : application/json } request...",           "total": 3  #订单菜品总数} Fail : 如果header中的 access_token 错误 {             "code": "401",    ...信息 添加 “View Result Tree” 用于查看 请求/响应 详情 在Http Header Manager中配置如下参数Content-Type :application/json...,暂时保持Http Header Manager中为空,我们之后会对其进行配置 返回代码为 401 提示信息为 “Please login first.”。...JMeter中引用变量的方法 ${变量名} 在浏览菜单接口,订单确认接口, 用户注销接口中的header中添加${access_token} 变量 运行调试结果,配置正确之后,后台接口可以回传正常响应结果数据

    2.6K30

    Gmail凭证泄露事件中的撞库与OAuth钓鱼攻击分析

    本文从攻击技术原理、身份验证机制漏洞、防御体系构建三个维度展开论述,提出以唯一密码策略、第三方OAuth授权审计、通行密钥(Passkey)部署及异常登录行为建模为核心的纵深防御框架,并辅以可落地的代码示例与检测逻辑...全文结构如下:第二部分详述攻击技术实现机制;第三部分分析现有身份验证体系的结构性缺陷;第四部分提出多维度防御框架并辅以代码示例;第五部分讨论组织响应策略的优先级划分;第六部分总结研究发现。...://www.googleapis.com/auth/gmail.readonly、https://www.googleapis.com/auth/contacts.readonly等高权限范围。...google.oauth2 import service_accountfrom googleapiclient.discovery import buildSCOPES = ['https://www.googleapis.com...5 组织响应策略的优先级划分面对“数据泄露”类事件,组织需冷静区分两类情形:真实后端泄露:如Google数据库被拖库,需立即强制全量密码重置、吊销所有会话与令牌,并启动事件响应流程。

    37010

    我所理解的接口设计

    : uri携带版本号,例如:v1/user/get 请求参数,例如:user/get?...方案: uri携带版本号,例如:v1/user/get_01 请求参数,小数点右边就是小版本,例如:user/get?...v=1.1 接口的安全性 接口的设计肯定绕不开安全这两个字,为了达到尽可能的安全,我们需要尽可能的增加被攻击的难度,以下是我了解和使用到的一些常见的手段去增加接口的安全性(https这里就不讨论了):...-> 解耦业务 即插即用 这个过程的关键字:抽象成类 前置中间件 注入 接着就是我们代码设计的层面了,如何抽象公共的部分与业务代码解耦。...-> 缺少公共必传参数或者业务必传参数 401 -> 接口校验失败 例如签名 403 -> 没有该接口的访问权限 499 -> 上游服务响应时间超过接口设置的超时时间 500 -> 代码错误 501

    86870

    我所理解的接口设计

    : uri携带版本号,例如:v1/user/get 请求参数,例如:user/get?...方案: uri携带版本号,例如:v1/user/get_01 请求参数,小数点右边就是小版本,例如:user/get?...v=1.1 接口的安全性 接口的设计肯定绕不开安全这两个字,为了达到尽可能的安全,我们需要尽可能的增加被攻击的难度,以下是我了解和使用到的一些常见的手段去增加接口的安全性(https这里就不讨论了):...-> 解耦业务 即插即用 这个过程的关键字:抽象成类 前置中间件 注入 接着就是我们代码设计的层面了,如何抽象公共的部分与业务代码解耦。...-> 缺少公共必传参数或者业务必传参数 401 -> 接口校验失败 例如签名 403 -> 没有该接口的访问权限 499 -> 上游服务响应时间超过接口设置的超时时间 500 -> 代码错误 501

    1.1K80

    Isito 入门(九):安全认证

    Peer Authentication Peer authentication 用于服务到服务的认证,在零信任网络中,Envoy 给服务之间的通讯加密,只有服务双方才能看到请求内容和响应结果。...一个典型的 jwtRules 配置可能包括以下几个部分: issuer: 发行者,表示JWT的发行方,例如:https://accounts.google.com。...例如:https://www.googleapis.com/oauth2/v3/certs。 jwtHeaders: 一个字符串数组,表示可以从HTTP请求头中获取JWT的头名称。...AuthorizationPolicy 的示例如下: apiVersion: security.istio.io/v1 kind: AuthorizationPolicy metadata: name...如果我们需要验证,当 token 中的 issuer 为 example-issuer 才能访问时,可以使用: apiVersion: security.istio.io/v1 kind: AuthorizationPolicy

    87620

    Dapr 入门教程之中间件

    一个请求在被路由到用户代码之前会经过所有定义的中间件组件,然后在返回到客户端之前以相反的顺序经过定义的中间件。...Alpha v1 Rate limit 限制每秒允许的 HTTP 请求的最大请求数 Alpha v1 Rego/OPA Policies 将 Rego/OPA 策略应用于传入的 Dapr HTTP 请求...,如果用户有特定的需求需要将代码在主仓库中进行更新,这势必也降低了灵活性,不过也可以避免因为低质量的中间件造成 Dapr 各种问题。...这种设计将认证/授权问题从应用程序中分离出来,因此应用程序运维人员可以采用和配置认证/授权提供者而不影响应用程序代码。.../o/oauth2/v2/auth https://accounts.google.com/o/oauth2/token https://www.googleapis.com/oauth2/v4/token

    1.4K20
    领券