| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
AdadeCastel
7年前发布

PayPal API风格指南和设计模式

   <p>PayPal通过RESTful API将自己的平台打造成彼此连接的服务。他们为此提供了用于创建和使用这些API的 <a href="/misc/goto?guid=4959754712376836173" rel="nofollow,noindex">指南</a> 和 <a href="/misc/goto?guid=4959754712490000483" rel="nofollow,noindex">设计模式</a> ,其他开发者可以在自己的项目中使用这些指南和模式。</p>    <p>PayPal的API设计指南经过多年的开发和演化,包含了如下的一些原则。</p>    <ul>     <li>低耦合:服务与消费者之间必须是低耦合的。</li>     <li>封装:一个服务只能通过其他服务提供的接口来访问不属于它的数据和功能。</li>     <li>稳定性:服务接口必须保持稳定。</li>     <li>可重用性:服务必须能够为多个上下文和多个消费者所重用。</li>     <li>基于协议:功能和数据必须通过标准的服务协议暴露出来。</li>     <li>一致性:服务必须遵循一系列规则、迭代风格、词汇表和公共类型。</li>     <li>易用性:对消费者应用程序来说,服务必须易于使用。</li>     <li>外部化(externalizable):服务提供的功能必须易于被外部化。</li>    </ul>    <p>业务能力以资源的形式暴露出来,这些资源都有自己的名字。为了避免重复,同一个资源只能由一个服务来提供,并通过HTTP方法来实现资源的CRUD操作:</p>    <ul>     <li>GET:用于获取一个资源。</li>     <li>POST:用于创建一个资源,或者执行更复杂的操作。</li>     <li>PUT:用于更新一个资源。</li>     <li>DELETE:用于删除一个资源。</li>     <li>PATCH:用于部分更新一个资源。</li>    </ul>    <p>HTTP通过 <a href="/misc/goto?guid=4959754712622773199" rel="nofollow,noindex">JSON数据交换格式</a> 来传输数据,这些格式都定义了 <a href="/misc/goto?guid=4959638325738612523" rel="nofollow,noindex">JSON Schema</a> 。Schema支持JSON原始类型,如字符串、数字、枚举、数组、空值(null),以及 <a href="/misc/goto?guid=4959754712790238358" rel="nofollow,noindex">常用类型</a> ,如地址、货币、日期、时间、国家、电话号码等。</p>    <p>API指南里包含了 <a href="/misc/goto?guid=4959754712892328185" rel="nofollow,noindex">HATEOAS代码示例</a> ,演示了如何使用超链接来实现REST。还有关于如何使用HTTP头部字段(标准和自定义的)和状态码的指南,如映射HTTP方法和状态码、URI的命名约定、查询参数、资源、错误处理、版本管理和弃用规则。PayPal还公开了另一份文档—— <a href="/misc/goto?guid=4959754712490000483" rel="nofollow,noindex">API设计模式和用例</a> ——详细说明了API的使用模式并提供了示例代码。</p>    <p><strong>查看英文原文:</strong> <a href="/misc/goto?guid=4959754713025109703" rel="nofollow,noindex">PayPal’s API Style Guide and Patterns</a></p>    <p> </p>    <p>来自:http://www.infoq.com/cn/news/2017/09/paypal-api-guide</p>    <p> </p>    
 本文由用户 AdadeCastel 自行上传分享,仅供网友学习交流。所有权归原作者,若您的权利被侵害,请联系管理员。
 转载本站原创文章,请注明出处,并保留原始链接、图片水印。
 本站是一个以用户分享为主的开源技术平台,欢迎各类分享!
 本文地址:https://www.open-open.com/lib/view/open1506386183714.html
API 设计模式