HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

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:002922
用户头像

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

关注

评论

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

嵌入式系统软件架构

timerring

嵌入式 12月月更

程序员,阿里P8java大神讲的Spring大家族原理汇总,你确定不看?

钟奕礼

Java java面试 java编程 程序员‘

Camtasia2023录屏和剪辑合一的软件

茶色酒

Camtasia2023

Flutter — 仅用三个步骤就能帮你把文本变得炫酷!

编程的平行世界

flutter android

模块一作业

Ryan

架构

【愚公系列】2022年12月 微信小程序-Behavior

愚公搬代码

12月月更

MySQL锁,锁的到底是什么?

蝉沐风

MySQL innodb MVCC

深入理解PKI

俞凡

架构 网络安全 网络

架构实战营模块一作业

张Dave

接口隔离原则介绍

杨充

AngularJS进阶(十七)在AngularJS应用中集成微信认证授权遇到的坑

No Silver Bullet

AngularJS 12月月更 微信认证授权

iMazing2023全新版下载安装使用介绍

茶色酒

imazing2023

问题处理,可别头疼医头脚疼医脚

靠谱的程序员

微服务的冷热部署

穿过生命散发芬芳

微服务 12月月更

Camtasia Studio2023软件和谐版录制电脑屏幕软件

茶色酒

Camtasia Studio2023

深刻理解JAVA并发中的有序性问题和解决之道

JAVA旭阳

Java Java并发

要不要开通个人养老金账户?

石云升

投资理财 个人养老金

Flink on Yarn三部曲之三:提交Flink任务

程序员欣宸

flink YARN 12月月更

实时数据赋能制造业产能升级:详解半导体和汽车制造行业最佳实践(活动报名)

tapdata

制造业 数据集成 汽车制造 实时数据 半导体行业

自制操作系统番外:编程语言中变量是如何存储的

编程语言

MongoDB源码学习:catalog与storage

云里有只猫

mongodb 源码刨析

运维进阶训练营 -W06H

赤色闪电

运维

Python程序打包

ITCamel

PyQt5 Python打包 打包exe

[信息抽取]基于ERNIE3.0的多对多信息抽取算法:属性关系抽取

汀丶人工智能

自然语言处理 信息抽取 12月日更 关系抽取 12月月更

AngularJS进阶(二十)HTML5实现获取地理位置信息并定位功能

No Silver Bullet

H5 AngularJS 12月月更 地理位置

DevOps真死了?平台工程真有用?

agnostic

DevOps 平台工程

黑盒测试 vs 白盒测试

agnostic

测试 黑盒测试 白盒测试

2022-12-03:部门工资最高的员工。以下数据Max 和 Jim 在 IT 部门的工资都是最高的,Henry 在销售部的工资最高。sql语句如何写? 输出结果如下: department emp

福大大架构师每日一题

数据库 福大大

AngularJS进阶(十九)在AngularJS应用中集成百度地图实现定位功能

No Silver Bullet

定位 百度地图 AngularJS 12月月更

Centos7.x部署K8S集群 (基于containerd 运行时)

蜗牛也是牛

Golong Context package

陈庆宗

Context #go

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