腾讯阿里原来是这样设计api的

本文分析了大厂API的设计思路,包括RESTFUL风格、返回码、数据交互格式、同步异步接口等设计规范。讨论了API的可用性,如幂等性、超时时间、限流机制。还探讨了安全性,涉及XSS攻击的防御和数据认证方法。
摘要由CSDN通过智能技术生成

大厂如何设计api

本文参考微信和支付宝的API设计,从「设计」,「可用性」,「安全性」三个方面分析API的设计思路;其中「设计篇」是设计一个api需要考虑哪些因素,「可用性」是一个api高可用的背后需要完成哪些技术点,「安全性」是API如何实现相互认证、安全通信等安全目标。

设计篇

RESTFUL风格

RESTFUL是一种API风格或者是规范,它有一些建议和规范指导如何设计好的API,到2010 年,大约 74% 的公共网络 API 是 HTTP REST的 API。

REST定义了一系列的标准方法,如GetPostCreateUpdateDeleteList等,来对资源的操作。

下面是官方文档中两个比较好的参考资料:

API规范定义

返回码标识

返回码标识决定了这一次的请求是否是成功的,如果是非成功的那是因为什么原因失败了。
Alibaba: API列表中可以看到,错误码InvalidTemplateName.Malformed标记了模板名格式不正确,模板名不能大于30个字符;只有给出良好错误码信息,才便于使用者进行调试与开发

数据交互格式

指定你的数据交互格式,比如json或者xml。

举例这里是微信支付: 下单API,我们可以看到它的数据交互格式是json。

同步、异步接口

业务定义

首先需要了解同步、异步业务的具体含义:

  • 同步:请求在发出后,双方一直维持连接;直到对端返回数据或者超时断开
  • 异步:请求在发出后,对方回复确认收到请求即
Legal Disclaimer........................................................................................................................................................... I Preface ......................................................................................................................................................................... II Table of Contents ........................................................................................................................................................ III 1. Introduction ......................................................................................................................................................... 6 1.1. Glossary.................................................................................................................................................... 6 2. Revision History .................................................................................................................................................... 7 3. Scenario Overview ............................................................................................................................................... 8 3.1. Account Management.............................................................................................................................. 8 3.1.1. Account Status ............................................................................................................................. 8 3.1.2. Account Actions ........................................................................................................................... 8 3.1.2.1. 3.1.2.2. 3.1.2.3. 3.1.2.4. Activate ............................................................................................................................ 9 Enable, Suspend, Disable, Delete..................................................................................... 9 Set/Get Hosting Status................................................................................................... 10 SSO ................................................................................................................................. 12 3.2. Credit Limit............................................................................................................................................. 13 3.3. Billing Statement .................................................................................................................................... 13 3.4. Ticket System (Draft) .............................................................................................................................. 13 3.5. Event Notification................................................................................................................................... 15 3.6. Pricing Info and Realtime Enquiry (Draft) .............................................................................................. 15 3.7. Admin Management (Beta).................................................................................................................... 15 4. API Overview ...................................................................................................................................................... 16 4.1. Account Management............................................................................................................................ 17 4.2. Credit Limit............................................................................................................................................. 17 4.3. Billing Statement .................................................................................................................................... 17 4.4. Ticket System (Draft) .............................................................................................................................. 17 4.5. Event Notification................................................................................................................................... 18 4.6. Pricing Info (Draft) .................................................................................................................................. 18 4.7. Admin Management .............................................................................................................................. 18 4.8. Data Type ............................................................................................................................................... 18 4.9. Error Info ................................................................................................................................................ 18 5. API Call Methods ................................................................................................................................................ 19 5.1. 5.2. 5.3. Request Structure .................................................................................................................................. 20 5.1.1. Service Address .......................................................................................................................... 20 5.1.2. Communication Protocol ........................................................................................................... 20 5.1.3. Request Methods ....................................................................................................................... 20 5.1.4. Request Parameters ................................................................................................................... 20 5.1.5. Character Encoding .................................................................................................................... 20 Public Parameters .................................................................................................................................. 20 5.2.1. Public Request Parameters ........................................................................................................ 20 5.2.2. Public Return Parameters .......................................................................................................... 21 Returned Results .................................................................................................................................... 21 5.3.1. Successful Results ...................................................................................................................... 22 Version:1.3.0 III Alibaba Cloud Partners API Documentation/Table of Contents 5.3.2. Error Results............................................................................................................................... 22 5.4. Signature Mechanism ............................................................................................................................ 23 6. API References.................................................................................................................................................... 25 6.1. 6.2. 6.3. 6.4. 6.5. 6.6. 6.7. 6.8. Account Management............................................................................................................................ 25 6.1.1. CreateAccount............................................................................................................................ 25 6.1.2. GetAccountInfo .......................................................................................................................... 25 6.1.3. QueryAccounts........................................................................................................................... 25 6.1.4. SetAccountStatus ....................................................................................................................... 26 6.1.5. CreateSsoLoginUrl ...................................................................................................................... 26 6.1.6. SetHostingStatus ........................................................................................................................ 26 6.1.7. GetHostingStatus ....................................................................................................................... 27 Credit Limit............................................................................................................................................. 27 6.2.1. InitializeCreditLimit .................................................................................................................... 27 6.2.2. GetCreditLimitInfo ..................................................................................................................... 28 6.2.3. SetCreditLimit ............................................................................................................................ 28 6.2.4. SetWarningThreshold ................................................................................................................ 28 6.2.5. ClearCreditBalance..................................................................................................................... 29 Billing Statement .................................................................................................................................... 29 6.3.1. QueryResellerDailySubscription................................................................................................. 29 6.3.2. QueryResellerDaliyPAYG............................................................................................................. 30 6.3.3. QueryEndUserDailySubscription ................................................................................................ 30 6.3.4. QueryEndUserDailyPAYG............................................................................................................ 31 6.3.5. QueryResellerMonthSummary .................................................................................................. 31 6.3.6. QueryEndUserMonthSummary ................................................................................................. 32 Ticket System (Draft) .............................................................................................................................. 32 6.4.1. CreateTicket ............................................................................................................................... 32 6.4.2. QueryTickets .............................................................................................................................. 33 6.4.3. CreateTicketReply ...................................................................................................................... 34 6.4.4. GetTicketReplies......................................................................................................................... 34 6.4.5. QueryTicketProducts.................................................................................................................. 34 6.4.6. QueryProductFAQs..................................................................................................................... 35 6.4.7. GetAttachmentTempUrl............................................................................................................. 35 Event Notification................................................................................................................................... 35 Pricing Info (Draft).................................................................................................................................. 35 6.6.1. GetRegions ................................................................................................................................. 35 6.6.2. GetProducts ............................................................................................................................... 36 6.6.3. GetComponents ......................................................................................................................... 36 6.6.4. GetPrice...................................................................................................................................... 36 6.6.5. EnquiryRealtimePrice................................................................................................................. 36 Admin Management .............................................................................................................................. 38 6.7.1. CreateAdminAccount ................................................................................................................. 38 6.7.2. GetAdminAccountInfo ............................................................................................................... 38 6.7.3. QueryAdminAccounts ................................................................................................................ 39 6.7.4. SetAdminAccountStatus ............................................................................................................ 39 Data Type ............................................................................................................................................... 39 6.8.1. JsonArrayString .................................................................................................................... 39 Version:1.3.0 IV Alibaba Cloud Partners API Documentation/Table of Contents 6.9. 6.8.2. DateType .................................................................................................................................... 39 6.8.3. AccountType............................................................................................................................... 39 6.8.4. AkType........................................................................................................................................ 40 6.8.5. TicketType .................................................................................................................................. 40 6.8.6. TicketStatusType ........................................................................................................................ 40 6.8.7. TicketReplyType ......................................................................................................................... 40 6.8.8. TicketProductType...................................................................................................................... 40 6.8.9. TicketProductFaqType ................................................................................................................ 41 6.8.10. AdminType ............................................................................................................................... 41 6.8.11. RellserDailySubscriptionType................................................................................................... 41 6.8.12. RellserDailyPAYGType............................................................................................................... 42 6.8.13. EndUserDailySubscriptionType ................................................................................................ 42 6.8.14. EndUserDailyPAYGType ............................................................................................................ 43 6.8.15. ResellerMonthSummaryType .................................................................................................. 43 6.8.16. ResellerMonthPordSummaryType ........................................................................................... 43 6.8.17. EndUserMonthSummaryType.................................................................................................. 44 Error Info ................................................................................................................................................ 44 6.9.1. Common Error Codes................................................................................................................. 44 6.9.2. Http Status Codes....................................................................................................................... 44 7. References.......................................................................................................................................................... 44
人工智能API是指人工智能技术公司提供的应用程序编程接口,用于让开发者能够使用这些公司的人工智能技术进行开发和应用。百度、腾讯阿里是国内三家知名的互联网巨头,它们也提供了人工智能API。 百度的人工智能API主要有语音识别、人脸识别和自然语言处理等。语音识别API可以将语音转换为文字,支持多种语言和方言,可以应用于语音翻译、语音搜索等场景。人脸识别API可以识别人脸的性别、年龄、表情等信息,可以应用于人脸验证、人脸检索等场景。自然语言处理API可以对文本进行分词、词性标注、情感分析等处理,可以应用于智能客服、文本分类等场景。 腾讯的人工智能API主要有图像识别和机器翻译等。图像识别API可以识别图片中的物体、场景、文字等信息,可以应用于图像搜索、智能广告等场景。机器翻译API可以将文本进行自动翻译,支持多种语言,可以应用于在线翻译、多语种交流等场景。 阿里的人工智能API主要有人脸识别、语音合成和机器学习等。人脸识别API可以识别人脸的年龄、性别、表情等信息,可以应用于人脸验证、人脸检索等场景。语音合成API可以将文字转换为语音,支持多种语音风格和音色,可以应用于智能播报、语音导航等场景。机器学习API可以根据数据进行模型的训练和预测,可以应用于推荐系统、广告投放等场景。 总之,百度、腾讯阿里的人工智能API提供了丰富的功能和接口,为开发者提供了丰富的人工智能技术支持,帮助开发者快速构建和应用人工智能相关的应用程序。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值