首页
学习
活动
专区
圈层
工具
发布

我们必须要知道的RESTful服务最佳实践

URL API请求授权 1.REST的来源 REST:Representational State Transfer(表象层状态转变),如果没听说过REST,你一定以为是rest这个单词,刚开始我也是这样认为的...REST是什么,应该知道的6大原则 REST之父Roy Fielding在论文中阐述REST架构的6大原则。 1. C-S架构 数据的存储在Server端,Client端只需使用就行。...获取今天登陆的用户、登陆时间降序排列 3. url命名规范 API 命名应该采用约定俗成的方式,保持简洁明了, 在RESTful架构中,每个url代表一种资源所以url中不能有动词,只能有名词,并且名词中也应该使用复数...4** 请求错误这些状态代码表示请求可能出错,妨碍了服务器的处理。 5**(服务器错误)这些状态代码表示服务器在尝试处理请求时发生内部错误。 这些错误可能是服务器本身的错误,而不是请求出错。...更新实体部分信息 201更新成功、422验证数据错误(401、403、404、406、500) PUT 更新实体所有信息除ID外 201更新成功、422(401、403、404、406、500) 6

1.6K30

可能是Salesforce与Microsoft Dynamics 365的最全面的比较

通常数据库“表”的内容在Microsoft Dynamics 365中称为“实体”,在Salesforce中称为“对象”。 Salesforce始终将客户的Salesforce帐户称为“org”。...Salesforce Enterprise和Unlimited具有多个API。 API包括SOAP Web服务,REST,批量API和元数据API。...Salesforce在Lightning Enterprise及更高版本中提供沙盒环境,用于开发和测试自定义项和代码。...包含Lightning Enterprise,开发人员沙盒可以创建为生产环境的快照,但沙盒不会继承生产数据。它有200 MB的存储限制。完整的沙盒可以继承所有数据,可以在企业版及更高版本上使用。...Microsoft Dynamics 365的高级查找允许用户搜索实体内以及跨实体的任何字段。 高级查找只能使用一次或保存为视图供后续使用。 ? 重复检测和合并 重复记录会降低用户体验。

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

    PayPal大规模采用GraphQL的探索和实践

    当我们选择 GraphQL 时,我们正在寻找一种技术来帮助我们解决以下问题: 过度获取的数据:我们的 REST(代表性状态传输)APIs 发送了客户端需要的部分响应和一些无关数据。...使客户端保持最新:我们在 REST API 中大量使用 API 版本号。任何时候我们有突破性的改变,我们都会将其发布为一个新的 API 版本。...字段和方法级检测:我们有内部检测工具,可以显示端点花费的时间和使用的参数,但是很难找到使用的字段。如果没有这些信息,我们就无法知道某个字段是否可以安全删除,或者是否仍在使用。...PayPal 有一套庞大的 REST API,支持应用程序核心功能,并且非常靠近数据库。GraphQL 在我们的应用程序中用作编排层。...在它发展之后,我们通过添加内部插件和中间件来提供支持,以规范化错误处理、检测和减少内部网络聊天,但我们希望能够更快地构建支持。 我们对单图方案的采用速度很慢。

    3.9K20

    【RESTful】RESTful API 接口设计规范 | 示例

    一般而言,API中的名词应该使用复数。例如,使用users反映用户资源的URI,而不是使用user。...204 NO CONTENT 删除数据成功 400 BAD REQUEST 用户发出的请求有错误 401 Unauthorized 表示用户没有认证,无法进行当前操作 403 Forbidden 表示用户的访问是被禁止的...422 Unprocesable Entity 当创建一个对象时,发生一个验证错误。...例如创建用户资源时需要用户名、密码,而前端只提供用户名字段,那么就要返回一个422 状态码,并返回错误信息:”密码不能为空“ 500 INTERNAL SERVER ERROR 服务器内部错误,此时服务端无法处理任何请求...错误处理 如果状态码是4xx或5xx,就应该向用户返回出错信息。

    3.4K20

    【Http】一文备忘Http状态码(406,415,422)

    4xx:客户端错误 406:Not acceptable,这表示API消费者请求的表述格式并不被Web API所支持,并且API不会提供默认的表述格式。...它说明服务器已经懂得了实体的Content Type,也就是说415状态码肯定不合适;此外,实体的语法也没有问题,所以400也不合适。但是服务器仍然无法处理这个实体数据,这时就可以返回422。...所以它通常是用来表示语意上有错误,通常就表示实体验证的错误。 5xx:服务器错误 ——摘自杨旭老师B站视频。 本篇重点关注状态码406和415,顺带看一下422。...服务器已经懂得了实体的Content Type的媒体类型,也就是说415状态码肯定不合适; 此外,实体的语法也没有问题,所以400也不合适。 但是服务器仍然无法处理这个实体数据,这时就可以返回422。...所以它通常是用来表示语意上有错误,或者不符合接口要求的数据,通常就表示实体验证的错误。

    3.2K10

    django 实现电子支付功能

    思路:调用第三方支付 API 接口实现支付功能。...,无法处理付款。")...default_app_config = 'mysite.apps.PaymentConfig' 通过上述设置,我们的网站已经可以正确地接受订单并使用 PayPal 付款了,我们可以在 PayPal 开发者网站...接下来我们便可以在我们的网站中使用这个测试账号付款了,点击前往付款,调用 payment 函数,加载含有正确数据的付款按钮,点击后便跳转到 paypal 的沙盒付款页面,我们在其中填入我们之前建立好的测试账号信息...不然付款的时候会出现下列界面。 ? 到这里,我们的付款便已经成功了,但是 PayPal 无法将支付状态通知发送到我们的应用,这是由于我们的项目运行在外部无法访问的 127.0.0.1 上。

    3K20

    使用wsb-detect检测你是否在Windows沙盒中

    众所周知,Windows Defender会使用沙盒来进行动态分析,而且很多安全分析都是需要在沙盒中手动执行的。在2019年底,微软推出了名为Windows Sandbox(简称WSB)的新功能。...此检查交叉引用mountmgr驱动程序上的创建时间戳。 wsb_detect_username 此方法将检查当前用户名是否为WDAGUtilityUserAccount,即沙盒中默认使用的帐户。...wsb_detect_suffix 此方法将使用getAdapterAddresses遍历适配器列表,并将DNS后缀与mshome.net进行比对,而后者是沙盒默认使用的。...wsb_detect_proc 检查CExecSvc.exe,这是一个容器执行服务,负责处理大量复杂的事情。...wsb_detect_genuine 当涉及到沙盒检测时,这是一种更通用的方法,但是从测试来看,Windows在虚拟机中似乎没有被验证为合法的。

    1.9K20

    超级账本项目:架构设计

    部署:VP 节点利用链码创建沙盒,沙盒启动后,处理 protobuf 协议的 shim 层一次性发送包含 ChaincodeID 信息的 REGISTER 消息给 VP 节点,进行注册,注册完成后,VP...节点通过 gRPC 传递参数并调用链码 Invoke 函数完成初始化; 调用:VP 节点发送 TRANSACTION 消息给链码沙盒的 shim 层,shim 层用传过来的参数调用链码的 Invoke...函数完成调用; 查询:VP 节点发送 QUERY 消息给链码沙盒的 shim 层,shim 层用传过来的参数调用链码的 Query 函数完成查询。...链码在 VP 节点上的隔离沙盒(目前为 Docker 容器)中执行,并通过 gRPC 协议来被相应的 VP 节点调用和查询。...与 chaincode 代码进行交互 与 chaincode 交互的主要方法有 cli 命令行与 rest api,关于 rest api 的使用请查看该目录下的例子。

    1.5K40

    使用 WSHControllerWSHRemote 对象的横向移动(IWSHController 和 IWSHRemote 接口)

    这是操作中的技巧(左侧 - 目标系统,右侧 - 攻击者): image.png 您可以重复使用粘贴在 Microsoft站点上的代码,并根据您的需要对其进行调整(也就是编辑远程计算机的名称和脚本的文件名...在四处寻找并阅读其他人为使其发挥作用所做的工作之后,我将这些想法放在一起: 使用管理员帐户执行接下来描述的两个操作(如果 wscript 无法写入注册表项,它不会返回错误!)...这是这些键的高级列表——如果你想要详细的值,你可以从你的测试实验室盒子上的 regshot 会话中获取它们: HKLM\SOFTWARE\Classes\CLSID\{6F201542-B482-11D2...4624: 一个帐户已成功登录。 4634:帐户已注销。 因此,在短时间内看到这个三连音可能是使用这种技术进行横向运动的一个很好的指标。 还有一点。...由于您可以在 localhost 上使用此技巧,因此它可用于破坏进程树(如 EDR 解决方案所见),并可能逃避一些沙盒分析(进程不直接由分析的样本或其子进程产生)有时会被忽略,除非沙盒知道规避技巧并监视其使用

    81310

    应用程序内购买教程:入门

    创建沙盒用户 在App Store Connect中,单击窗口左上角的App Store Connect以返回主菜单。选择“ 用户和角色”,然后单击“ 沙箱测试器”选项卡。...收到该电子邮件后,请务必点击其中的链接以验证您的地址。 您输入的电子邮件地址也不应与Apple ID帐户相关联。提示:如果您有一个Gmail帐户,您只需使用地址别名,而不必创建一个全新的帐户。...注意:不幸的是,测试新购买的非耗材 IAP需要每次都有一个新的沙箱测试仪(和电子邮件地址)。使用相同沙盒测试器的重复购买将被视为恢复已购买的项目,因此不会执行特定于新购买的任何代码。...您可以采用的一种策略是在测试成功案例之前尽可能多次测试失败案例。这样你就需要创建更少的沙盒测试器。一般情况下,请记住,一旦用户(甚至是沙盒)购买了非消耗性IAP,他就不能再次购买,只能恢复它。...text = "Not available" } } 当无法使用设备付款时,此实施将显示更合适的信息。

    8K20

    8个woocommerce支付网关插件推荐

    PayPal Checkout by WooCommerce 任何使用WooCommerce来运行其WordPress商店的企业家都可以使用此功能丰富的附加组件在安全的环境中出售其产品和服务。...另外,贝宝(Paypal)是使用最广泛且值得信赖的付款处理商之一,因此客户可以放心使用它。此加载项具有“上下文内签出”功能,可以满足电子商务网站的所有必要安全要求。...干净且易于使用的界面使安装和使用变得简单。所有客户付款数据均由Square处理,因此您不必担心。 6....PayPal for WooCo     mmerce 我们都知道,贝宝是商业组织中进行在线交易的流行平台。使用此免费插件,您可以在网站上使用PayPal的功能。...另外,插件开发人员还可以为每月销售额至少1000美元的任何商店提供一个免费的PayPal Payment Pro帐户。

    9.5K00

    规避检测(共五章):第五章

    一、基于时间的沙盒规避技术 沙盒模拟通常持续很短的时间,因为沙盒加载了数千个样本。仿真 时间很少超过3-5分钟。...高级 API 函数(如 WaitForSingleObject()或 Sleep())以相对间隔运行。因此,沙盒开发人员可能不关心绝对超时并错误地处理它们。...在沙盒中,这种延迟被跳过,但跳过的时间和刻度被错误地计算。这可以使用检测睡眠跳过。...= 0) 在沙盒中,可能无法正确处理 NtDelayExecution 和类似函数的输入参数。...此外,上次启动时间中的任何异常都可以用作沙盒指示器: 系统正常运行时间过长(数月甚至数年) 系统正常运行时间很短(不到几分钟) 使用其他方法获取的上次启动时间与使用 WMI 获取的上次启动时间不同 strComputer

    81320

    在K8s上轻松部署Tungsten Fabric的两种方式

    第一种:在AWS的K8s上部署TF 首先介绍下如何在AWS上使用Kubernetes编排的Tungsten Fabric集群部署沙盒,15分钟就可以搞定。...Tungsten Fabric集群由部署节点、一个控制器节点、两个作为EC2 VM运行的计算节点组成。 要求 在开始使用沙盒之前,必须订购CentOS 7 x86_64 HVM的正式映像。...*如果您以IAM用户身份连接,您将无法在AWS Marketplace中执行任务,请查看文档末尾的附录以获取相关解决方案。...重要信息:沙盒使用完毕后,可以使用DELETE SANDBOX按钮清除所有使用的资源。 image.png 为了双重安全,您可以在删除后检查AWS Interface中的剩余资源。...附录:IAM用户 如果要使用IAM用户而不是使用root帐户登录,则需要为该用户授予额外的特权。 登录到AWS控制台。 在控制台左上方的AWS服务搜索中,找到IAM并选择它。

    2.1K41

    sandbox | Electron 安全

    沙盒进程可以自由使用的唯一资源是 CPU 周期和内存。例如,沙盒进程无法写入磁盘或显示自己的窗口。他们究竟能做什么是由一个明确的策略控制的。 Chromium 渲染器是沙盒进程。...脚本来说,它属于是渲染进程的一部分,但沙盒化后仍然可以使用部分 Node.js 的 API ,毕竟它要负责渲染器进程和主进程之间的通信, Electron 官方给 Preload 脚本提供了一个 require...,尽量不要在沙盒中渲染不受信任的内容 0x04 sandbox 历史 Electron 3.0 允许在沙盒化的渲染进程中使用 webview Electron 6.0 混合沙盒默认启用 此时开始,sandbox...显式地设置为 true 后,Preload 不可以执行危险的 Node.js API Electron 20.0 默认情况下会对渲染器进行沙盒化 此时开始,默认情况下 Preload 不可以执行危险的...的表现,并没有对不设置 sandbox ,使用其默认值测试 nodeIntegration配置项,因此得出了在 Electron 20.0 以后默认情况下 sandbox: true 的错误结论 时间线图如下

    1.6K10

    《iOS沙盒Python适配进阶指南:从静态兼容到自适应运行体系》

    更隐蔽的是,沙盒会对进程的内存空间进行隔离划分,Python解释器在分配内存时,既无法访问系统级的共享内存区域,也难以与原生应用形成有效的内存交互,导致数据流转效率低下。...同时,系统对动态链接库的加载路径有着强制约束,Python标准库中部分依赖系统级动态库的模块,在沙盒环境中会因路径无法识别而失效,这种失效并非模块本身不存在,而是加载机制与沙盒的路径映射规则不兼容。...实践中,开发者需要借助专门的工具链处理依赖剥离与框架封装,同时手动配置元数据文件,确保模块的导入路径与沙盒的目录结构形成逻辑闭环。...我曾在一个交互项目中尝试让Python脚本调用iOS的相机功能,初期使用常规桥接工具直接调用API,结果因权限上下文不匹配导致调用失败,且出现内存泄漏问题。...后来通过分析沙盒的权限传递机制,在桥接层中加入了权限校验模块,先通过原生应用获取相机权限,再将权限上下文传递给Python解释器,同时设计了数据类型转换池,对Python的动态数据进行定型处理后再传递给原生

    12610

    关于聚合卡牌盲盒模式系统开发逻辑方案设计程序(成熟代码)

    (仅代表本人收益)对实体店进行投资,回款周期为4-6个月,一年净收入在20万-30万之间。“盲盒”虽然不算暴利,但它的收益也相当可观。...3、盲盒小程序的优惠券顾客可以在抽盲盒购买时,使用优惠券进行支付,商家可以结合促销活动,发放优惠券,提高顾客的重复购买率和活跃度。...虽说盲盒这个项目的利润比较高,但是无法确定这个项目的长久性,但现在还是盲盒项目的红利期,目前来说还是可以做的。...0;if($use_tickets_num > 0) {$this->response->error("已使用帮抢券,请等待下一场",422);}$tickets = $request->input('...$next) {$this->response->error("系统错误",422);}try {DB::beginTransaction();$tickets= explode(',',$tickets

    69270

    REST API面临的7大安全威胁

    对于使用REST作为客户机或服务器的应用程序,另一方通常完全控制资源表示,并可以注入任何有效负载来攻击资源处理(例如,获取任意Java代码或系统命令执行)。...定义适当的请求大小限制,并拒绝HTTP响应状态为413的请求实体太大而超过该限制的请求 2....当超过速率时,至少暂时阻塞API键的访问,并返回429(太多请求)HTTP错误代码。 如果您开始构建新的REST API,请检查具有许多面向安全特性的web服务器。 3....攻击的目的通常是控制多个帐户,更不用说攻击者获得与被攻击用户相同的特权了。应该只允许经过身份验证的用户访问api。...如果在可靠的服务器端或服务器端API中实现访问控制,则访问控制通常是有效的,攻击者将无法更改访问控制元数据。 6.

    2.7K20

    RESTfulAPI接口设计规范与快速入门

    RESTful API 核心规范 REST 中一切实体都被抽象成资源,每个资源有一个唯一的标识 URI ,所有的行为都应该是在资源上的 CRUD 操作 REST 中是无状态的,即请求都包含了所有足够完成本次操作的依赖信息...REST 中天生和 HTTP 协议相辅相成,所以使用标准的HTTP协议方法 POST 、 DELETE 、 PUT 、 GET 方法来对应 REST 资源的增、删、改、查操作。...422 Unprocesable entity [POST/PUT/PATCH] 当创建一个对象时,发生一个验证错误。...500 INTERNAL SERVER ERROR [*] 服务器发生错误,用户将无法判断发出的请求是否成功。...返回与错误处理规范 描述: 在服务器返回的数据格式,应该尽量使用 JSON 避免使用 XML,在实际开发中常常也是使用 JSON。

    3.1K40

    Manus 工作流形成机制深度调研报告

    在执行阶段,行动指令被发送到沙盒环境实际运行。沙盒环境隔离了外部系统,确保代码执行不会影响宿主系统的稳定性。执行结果包括标准输出、错误信息、返回值和状态变更等,这些信息被捕获并转换为统一的反馈格式。...沙盒环境提供了访问控制机制,阻止代理访问敏感资源或执行危险操作。第三,多任务并发执行需要资源隔离。系统可能同时处理多个用户的任务,如果任务之间没有隔离,一个任务的错误或资源消耗可能影响其他任务的执行。...在云端环境中,多个用户的任务可能同时执行,容器隔离确保一个用户的任务无法访问其他用户的数据或影响其他任务的执行。3.2.4 文件系统状态管理与持久化沙盒环境的文件系统管理是支持复杂任务的关键。...代理会记录失败的尝试和成功的结果,避免重复错误。第二个场景是代码执行异常。如果生成的代码存在语法错误或运行时异常,沙盒环境会返回错误信息。执行代理解析错误信息,定位问题行,生成修正后的代码。...对于简单任务,规划代理可以直接使用预定义的模板快速分解;对于复杂任务,需要更多的推理时间。执行阶段是时间消耗的主体。数据获取、数据处理、可视化生成等操作的时间取决于任务复杂度和数据规模。

    1K40
    领券