写点什么

PayPal API 风格指南和设计模式

  • 2017-09-24
  • 本文字数:742 字

    阅读完需:约 2 分钟

PayPal 通过 RESTful API 将自己的平台打造成彼此连接的服务。他们为此提供了用于创建和使用这些 API 的指南设计模式,其他开发者可以在自己的项目中使用这些指南和模式。

PayPal 的 API 设计指南经过多年的开发和演化,包含了如下的一些原则。

  • 低耦合:服务与消费者之间必须是低耦合的。
  • 封装:一个服务只能通过其他服务提供的接口来访问不属于它的数据和功能。
  • 稳定性:服务接口必须保持稳定。
  • 可重用性:服务必须能够为多个上下文和多个消费者所重用。
  • 基于协议:功能和数据必须通过标准的服务协议暴露出来。
  • 一致性:服务必须遵循一系列规则、迭代风格、词汇表和公共类型。
  • 易用性:对消费者应用程序来说,服务必须易于使用。
  • 外部化(externalizable):服务提供的功能必须易于被外部化。

业务能力以资源的形式暴露出来,这些资源都有自己的名字。为了避免重复,同一个资源只能由一个服务来提供,并通过 HTTP 方法来实现资源的 CRUD 操作:

  • GET:用于获取一个资源。
  • POST:用于创建一个资源,或者执行更复杂的操作。
  • PUT:用于更新一个资源。
  • DELETE:用于删除一个资源。
  • PATCH:用于部分更新一个资源。

HTTP 通过 JSON 数据交换格式来传输数据,这些格式都定义了 JSON Schema 。Schema 支持 JSON 原始类型,如字符串、数字、枚举、数组、空值(null),以及常用类型,如地址、货币、日期、时间、国家、电话号码等。

API 指南里包含了 HATEOAS 代码示例,演示了如何使用超链接来实现 REST。还有关于如何使用 HTTP 头部字段(标准和自定义的)和状态码的指南,如映射 HTTP 方法和状态码、URI 的命名约定、查询参数、资源、错误处理、版本管理和弃用规则。PayPal 还公开了另一份文档—— API 设计模式和用例——详细说明了 API 的使用模式并提供了示例代码。

查看英文原文: PayPal’s API Style Guide and Patterns

2017-09-24 19:002991
用户头像

发布了 322 篇内容, 共 142.4 次阅读, 收获喜欢 147 次。

关注

评论

发布
暂无评论
发现更多内容

CSS实战 | 磁性页头和页脚的表格制作

devpoint

CSS 6月日更

还不会JVM调优吗?照着做就行

看山

Java JVM 6月日更

清晰理解红黑树的演变---红黑的含义

hasWhere

servlet工作原理之tomcat篇

hasWhere

从金融街往事到全场景智慧金融未来

脑极体

深入了解Spring框架之WebMVC框架

邱学喆

spring webmvc HandlerMethod HandlerInterceptor

烹饪一道美味的 CLI

蛋先生DX

node,js command 6月日更

Tomcat架构的认知

邱学喆

tomcat @WebServlet @WebFilter Manager

期权的初步认识

Qien Z.

期权 6月日更

让区块链价值的属性之一“免信任”,更好的融入

CECBC

「SQL数据分析系列」5. 多表查询

Databri_AI

数据库 sql 查询语句

图论环境配置出现的各种错误

容光

负载均衡算法之二 - 以 Golang 方式

hedzr

Go 语言 load-balancing weighted random weighted versioning

Redis响应延时问题排查

hasWhere

戏说前端 JavaScript 之『防抖节流』基础知识

编程三昧

JavaScript 大前端 防抖节流 函数节流 函数防抖

【21-9】文件和文件夹

耳东@Erdong

PowerShell 6月日更

全国首个“区块链+数字人民币”应用场景在雄安新区落地

CECBC

区块链场景化应用大有可为

CECBC

什么是 API

escray

学习 极客时间 朱赟的技术管理课 6月日更

【Flutter 专题】102 何为 Flutter RenderObjects ?

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 6月日更

react源码解析14.手写hooks

全栈潇晨

React

Zookeeper在线迁移

阿骆麦迪

zookeeper 分布式 中间件 6月日更

相比买买买,我们更想在618聊一聊云厂商的能力象限价值几何

脑极体

SpringBoot之ScopedProxyMode

梦倚栏杆

数据库索引为什么使用B+树

hasWhere

【Vue2.x 源码学习】第十六篇 - 生成 render 函数 - 代码拼接

Brave

源码 vue2 6月日更

WinRM 如何设置 TrustedHosts

HoneyMoose

源码级别理解 Redis 持久化

蘑菇睡不着

Java redis Redis 协议

沟通的方法:反向叙述

石云升

读书笔记 沟通 6月日更

短链接生成算法

Skysper

算法

网络攻防学习笔记 Day46

穿过生命散发芬芳

网络攻防 6月日更

PayPal API风格指南和设计模式_REST_Abel Avram_InfoQ精选文章