22 条 API 设计最佳实践,快收藏。。(1)

简介: 22 条 API 设计最佳实践,快收藏。。(1)

在这个微服务的世界里,后端API的一致性设计是必不可少的。


今天,我们将讨论一些可遵循的最佳实践。我们将保持简短和甜蜜——所以系好安全带,出发咯!


首先介绍一些术语

任何API设计都遵循一种叫做“面向资源设计”的原则:


资源:资源是数据的一部分,例如:用户

集合:一组资源称为集合,例如:用户列表

URL:标识资源或集合的位置,例如:/user


1. 对URL使用kebab-case(短横线小写隔开形式)

例如,如果你想要获得订单列表。


不应该:

/systemOrders或/system_orders

应该:

/system-orders


2. 参数使用camelCase(驼峰形式)

例如,如果你想从一个特定的商店购买产品。

不应该:

/system-orders/{order_id}

或者:

/system-orders/{OrderId}

应该:

/system-orders/{orderId}


3. 指向集合的复数名称

如果你想获得系统的所有用户。

不应该:

GET /user

或:

GET /User

应该:

GET /users


4. URL以集合开始,以标识符结束

如果要保持概念的单一性和一致性。


不应该:

GET /shops/:shopId/category/:categoryId/price

这很糟糕,因为它指向的是一个属性而不是资源。


应该:

GET /shops/:shopId/或GET /category/:categoryId


5. 让动词远离你的资源URL

不要在URL中使用动词来表达你的意图。相反,使用适当的HTTP方法来描述操作。

不应该:

POST /updateuser/{userId}

或:

GET /getusers

应该:

PUT /user/{userId}


6. 对非资源URL使用动词

如果你有一个端点,它只返回一个操作。在这种情况下,你可以使用动词。例如,如果你想要向用户重新发送警报。


应该:

POST /alarm/245743/resend

请记住,这些不是我们的CRUD操作。相反,它们被认为是在我们的系统中执行特定工作的函数。


7. JSON属性使用camelCase驼峰形式

如果你正在构建一个请求体或响应体为JSON的系统,那么属性名应该使用驼峰大小写。

不应该:

{
   user_name: "Mohammad Faisal"
   user_id: "1"
}

应该:

{
   userName: "Mohammad Faisal"
   userId: "1"
}

8. 监控

RESTful HTTP服务必须实现/health和/version和/metricsAPI端点。他们将提供以下信息。


/health


用200 OK状态码响应对/health的请求。


/version


用版本号响应对/version的请求。


/metrics


这个端点将提供各种指标,如平均响应时间。


也强烈推荐使用/debug和/status端点。


9. 不要使用table_name作为资源名

不要只使用表名作为资源名。从长远来看,这种懒惰是有害的。

不应该:

product_order

应该:

product-orders

这是因为公开底层体系结构不是你的目的。


10. 使用API设计工具

有许多好的API设计工具用于编写好的文档,例如:


image.png

拥有良好而详细的文档可以为API使用者带来良好的用户体验。


11. 使用简单序数作为版本

始终对API使用版本控制,并将其向左移动,使其具有最大的作用域。版本号应该是v1,v2等等。


应该:http://api.domain.com/v1/shops/3/products


始终在API中使用版本控制,因为如果API被外部实体使用,更改端点可能会破坏它们的功能。


相关文章
|
15天前
|
监控 数据管理 测试技术
API接口自动化测试深度解析与最佳实践指南
本文详细介绍了API接口自动化测试的重要性、核心概念及实施步骤,强调了从明确测试目标、选择合适工具、编写高质量测试用例到构建稳定测试环境、执行自动化测试、分析测试结果、回归测试及集成CI/CD流程的全过程,旨在为开发者提供一套全面的技术指南,确保API的高质量与稳定性。
|
21天前
|
监控 安全 API
深入浅出:构建高效RESTful API的最佳实践
在数字化时代,API已成为连接不同软件和服务的桥梁。本文将带你深入了解如何设计和维护一个高效、可扩展且安全的RESTful API。我们将从基础概念出发,逐步深入到高级技巧,让你能够掌握创建优质API的关键要素。无论你是初学者还是有经验的开发者,这篇文章都将为你提供实用的指导和启示。让我们一起探索API设计的奥秘,打造出色的后端服务吧!
|
28天前
|
安全 Java API
告别SimpleDateFormat:Java 8日期时间API的最佳实践
在Java开发中,处理日期和时间是一个基本而重要的任务。传统的`SimpleDateFormat`类因其简单易用而被广泛采用,但它存在一些潜在的问题,尤其是在多线程环境下。本文将探讨`SimpleDateFormat`的局限性,并介绍Java 8引入的新的日期时间API,以及如何使用这些新工具来避免潜在的风险。
34 5
|
1月前
|
SQL 缓存 测试技术
构建高性能RESTful API:最佳实践与避坑指南###
—— 本文深入探讨了构建高性能RESTful API的关键技术要点,从设计原则、状态码使用、版本控制到安全性考虑,旨在为开发者提供一套全面的最佳实践框架。通过避免常见的设计陷阱,本文将指导你如何优化API性能,提升用户体验,确保系统的稳定性和可扩展性。 ###
57 12
|
1月前
|
数据可视化 API 索引
ES常见Index API操作最佳实践!
【10月更文挑战第21天】
76 1
ES常见Index API操作最佳实践!
|
27天前
|
JSON API 开发者
构建高效API:后端开发中的RESTful最佳实践####
在数字化时代,API作为不同系统间通信的桥梁,其重要性日益凸显。本文将深入探讨RESTful API的设计原则与最佳实践,通过实际案例分析,揭示如何构建高效、可维护且易于使用的API接口,助力后端开发者提升项目质量与用户体验。 ####
|
1月前
|
JSON 缓存 API
构建高效RESTful API的最佳实践
【10月更文挑战第34天】在数字时代的浪潮中,后端开发扮演着至关重要的角色。本文将带你深入探索如何构建高效的RESTful API,从设计原则到实际编码技巧,再到性能优化和错误处理,我们将一一解锁这些技能。你将学会如何打造一个既优雅又强大的后端服务,让你的应用程序在激烈的市场竞争中脱颖而出。那么,让我们一起踏上这段精彩的旅程吧!
34 2
|
1月前
|
API 数据安全/隐私保护 开发者
探索RESTful API设计的最佳实践
【10月更文挑战第25天】在数字时代的浪潮中,API成为了连接不同软件组件的桥梁。本文将深入探讨如何设计高效的RESTful API,通过实际代码示例揭示背后的逻辑和结构之美。我们将从基础原则出发,逐步展开到高级概念,旨在为读者提供一套完整的设计蓝图。
|
23天前
|
JavaScript 前端开发 API
探索组合式API与Options API的对比及最佳实践
探索组合式API与Options API的对比及最佳实践
|
27天前
|
Web App开发 人工智能 自然语言处理
WebChat:开源的网页内容增强问答 AI 助手,基于 Chrome 扩展的最佳实践开发,支持自定义 API 和本地大模型
WebChat 是一个基于 Chrome 扩展开发的 AI 助手,能够帮助用户理解和分析当前网页的内容,支持自定义 API 和本地大模型。
63 0