Sambil kita membuat pembangunan back-end, kita selalunya perlu mentakrifkan dokumen antara muka.
Baru-baru ini semasa melakukan semakan dokumen antara muka, saya mendapati bahawa parameter yang ditakrifkan oleh rakan kongsi kecil ialah nilai penghitungan, tetapi dokumen antara muka tidak memberikan yang sepadan Nilai penghitungan khusus . Sebenarnya, cara menulis dokumen antara muka dengan baik adalah sangat penting. Hari ini, Saudara Tianluo membawakan anda 12
mata untuk diperhatikan tentang dokumen reka bentuk antara muka~
Dengan kata lain, apakah fungsi antara muka anda dan adakah ia mudah difahami dan jelas? Antara muka am url
juga memerlukan fungsi antara muka boleh dilihat. Contohnya, Maklumat Pengguna Pertanyaan (QueryUserInfo) ialah nama antara muka yang baik.
Alamat antara muka, juga dipanggil URL
alamat antara muka. Iaitu, apa yang URL
digunakan apabila orang lain memanggil antara muka anda. Contohnya, /api/user/queryUserInfo
ialah alamat antara muka . Walau bagaimanapun, apa yang saya ingin katakan ialah ini bukan alamat antara muka yang lengkap. Adakah antara muka anda dipanggil oleh HTTP
?
Jika ia dipanggil oleh HTTP
, apakah nama domain? Pelabuhan? http
alamat antara muka yang baik hendaklah seperti ini:
https//tianluo.com:15000/api/user/queryUserInfo
Kaedah permintaan antara muka biasanya termasuk yang berikut:
URL
, biasanya digunakan untuk pertanyaan data. GET
, tetapi hanya mengembalikan pengepala respons, bukan kandungan entiti Ia biasanya digunakan untuk mendapatkan maklumat meta sumber. Apabila anda mentakrifkan dokumen antara muka, anda perlu menulis dengan jelas, yang manakah kaedah permintaan antara muka anda? Dalam keadaan biasa, kami menggunakan POST和GET
lebih kerap. Terdapat juga syarikat yang menggunakan permintaan POST
untuk semua antara muka.
Apabila kami menentukan antara muka, parameter permintaan ialah salah satu bahagian terpenting . Untuk dokumen antara muka yang layak, parameter permintaan hendaklah mengandungi lapan elemen ini:
userId
. Jenis String、Integer
, dsb. Long,Integer
, ini ialah nilai julat, seperti 1~10
Jika ia adalah nilai penghitungan, ia ialah julat penghitungan, seperti ACTIVE、INACTIVE
. yyyyMMdd
Berikut ialah contoh dokumen :
参数名 | 类型 | 是否必填 | 默认值 | 取值范围 | 参数格式 | 入参示例值 | 备注(说明) |
---|---|---|---|---|---|---|---|
userId | Long | 是 | 0L | 0~99999999L | 无 | 666L | 用户Id |
birthDay | String | 是 | 19900101 | 19900101~20231231 | yyyyMMdd | 19940107 | 用户生日 |
Parameter respons sebenarnya serupa dengan parameter input, dengan 7 elemen:
String、Integer
yyyy-MM-dd、HH:mm:ss
: code,msg,data
{ "code": 0, "message": "success", "data": { "name": "Tom", "age": 20, "gender": "男" } }
kod ralat, maklumat kod ralat, makna
定义接口文档时,对于一些需要保护的接口,也需要考虑接口的安全,例如权限管理、防止 SQL 注入等。
因此,接口文档应当包含接口的安全性说明:例如接口的访问授权方式、数据传输加密方式等。此外,接口文档还应该对于敏感数据和操作进行标注,方便使用者注意隐私和安全问题。
在接口文档定义时,接口版本管理是非常重要的一个方面。由于软件项目的迭代和升级,接口可能会随着版本的变化而发生变化。为了避免接口变化给用户带来不必要的困扰,需要对接口进行版本管理。
以下是一些常用的接口版本管理方法:
https://example.com/api/v1/user
,表示该接口的版本号为v1
。Semantic Versioning
)规范,即版本号格式为X.Y.Z
,其中X
表示主版本号、Y
表示次版本号、Z
表示修订号。当进行兼容性变更时,需升级主版本号;当增加功能且不影响现有功能时,需升级次版本号;当进行bug
修复或小功能改进时,需升级修订号。无论采用何种方法,接口版本管理都应该得到充分的考虑。在接口版本变化时,需要及时更新接口文档(详细描述版本的变化、兼容性问题、版本切换方式等),以确保用户能够获得最新的接口信息。
如果接口发生了变更,比如参数有哪些变更,错误码变更等等,都需要维护到文档上。同时需要登记变更的记录。
日期 | 变更描述 | 操作人 |
---|---|---|
2023-04-16 | 创建接口文档,定义了第一版接口文档 | 捡田螺的小男孩 |
2023-04-18 | 修改接口文档,增加了错误码,出参等 | 田螺哥 |
接口文档,是需要写清楚的请求头的。接口文档的请求头可以看到以下的信息:
application/json、application/x-www-form-urlencoded、multipart/form-data
等。Token、Bearer
等。application/json、text/html
等。gzip、deflate
等。no-cache、max-age
等。cookie
信息。这是是一个接口文档的请求头的示例:
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"}
接口文档,需要提供接口的使用案例:以方便开发者理解接口的使用方法和调用流程。
一般来说,接口文档需要完善:接口测试的方法和测试结果,以便用户可以测试接口是否符合自己的需求,让用户用得放心~哈哈
Atas ialah kandungan terperinci 12 perkara yang perlu diberi perhatian apabila berkongsi dokumen reka bentuk antara muka. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!