Home >Backend Development >PHP Tutorial >12 points to note when sharing interface design documents
We do back-end development, and we often need to define interface documents.
When I was doing interface document review recently, I found that the parameter defined by a small partner was an enumeration value, but the interface document did not provide the corresponding Specific enumeration value . In fact, how to write interface documents well is really important. Today, Brother Tianluo brings you 12
points to note in interface design documents~
In other words, what does your interface do and is it easy to understand and clear? The general interfaceurl
also requires that the function of the interface can be seen. For example, Query User Information (queryUserInfo) is a good interface name.
The address of the interface is also called the URL
address of the interface. That is, what URL
is used when others call your interface. For example, /api/user/queryUserInfo
is an interface address. However, what I want to say is that this is not a complete interface address. Is your interface called HTTP
?
If HTTP
is called, what is the domain name? Port. A good http
interface address should be like this:
https//tianluo.com:15000/api/user/queryUserInfo
Interface request methods usually include the following:
URL
, which is usually used to query data. GET
request, but only returns the response header and not the entity content. It is usually used to obtain meta-information of resources. When you define the interface document, you need to write clearly, which is your interface request method? Under normal circumstances, we use POST and GET
more often. There are also companies that use POST
for all interfaces.
When we define the interface, the request parameters are one of the most important parts . For a qualified interface document, the request parameters should contain these eight elements:
userId
. String, Integer
, etc. Long, Integer
, this is a range value, such as 1~10
, if it is an enumeration value, That is the enumeration range, such as ACTIVE, INACTIVE
. yyyyMMdd
The following is a sample document for entering parameters:
Parameter name | Type | Required or not | Default value | Value range | Parameter format | Input parameter example value | Remarks (description) |
---|---|---|---|---|---|---|---|
userId | Long | is | 0L | 0~99999999L | None | 666L | UserId |
birthDay | String | is | 19900101 | 19900101~20231231 | yyyyMMdd | 19940107 | User birthday |
, etc.
, etc.
code, msg, data:
{ "code": 0, "message": "success", "data": { "name": "Tom", "age": 20, "gender": "男" } }6. Interface error code A good interface document must include error code enumeration. The general error code definition includes three columns:
Error code, error code information, meaning
Error information | Meaning | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Illegal request parameter | 1002 | ||||||||||
The corresponding user information was not found based on the given user ID | ##1003 | ||||||||||
Database access error |
7.接口安全定义接口文档时,对于一些需要保护的接口,也需要考虑接口的安全,例如权限管理、防止 SQL 注入等。 因此,接口文档应当包含接口的安全性说明:例如接口的访问授权方式、数据传输加密方式等。此外,接口文档还应该对于敏感数据和操作进行标注,方便使用者注意隐私和安全问题。 8. 接口版本管理在接口文档定义时,接口版本管理是非常重要的一个方面。由于软件项目的迭代和升级,接口可能会随着版本的变化而发生变化。为了避免接口变化给用户带来不必要的困扰,需要对接口进行版本管理。 以下是一些常用的接口版本管理方法:
无论采用何种方法,接口版本管理都应该得到充分的考虑。在接口版本变化时,需要及时更新接口文档(详细描述版本的变化、兼容性问题、版本切换方式等),以确保用户能够获得最新的接口信息。 9. 维护接口文档更新迭代如果接口发生了变更,比如参数有哪些变更,错误码变更等等,都需要维护到文档上。同时需要登记变更的记录。
10.明确请求头有哪些接口文档,是需要写清楚的请求头的。接口文档的请求头可以看到以下的信息:
这是是一个接口文档的请求头的示例: POST /api/user HTTP/1.1 Host: example.com Content-Type: application/json Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c Accept: application/json User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36 Accept-Encoding: gzip, deflate, br Cache-Control: no-cache Cookie: _ga=GA1.2.1234567890.1234567890; _gid=GA1.2.0987654321.0987654321 If-None-Match: W/"2a-3TjT7VaqgkT1nJdKjX9Cpijp2FA" Referer: https://example.com/login Origin: https://example.com Content-Length: 43 {"name": "John Doe", "age": 25, "email": "john.doe@example.com"} 11 接口请求示例接口文档,需要提供接口的使用案例:以方便开发者理解接口的使用方法和调用流程。 12. 接口测试一般来说,接口文档需要完善:接口测试的方法和测试结果,以便用户可以测试接口是否符合自己的需求,让用户用得放心~哈哈 |
The above is the detailed content of 12 points to note when sharing interface design documents. For more information, please follow other related articles on the PHP Chinese website!