所有文章 > 当前分类:API设计
.NET云原生应用实践(二):Sticker微服务RESTful API的实现
.NET云原生应用实践(二):Sticker微服务RESTful API的实现
2024/11/27
引言:应该使用ORM框架吗? 毋庸置疑,Sticker微服务需要访问数据库来管理“贴纸”(也就是“Sticker”),因此,以什么方式来存储数据,就是一个无法绕开的话题。如果你遵循领域驱动设计的思想,那么你可以说,保存到数据库的数据,...
Gin系列二:Gin搭建Blog API’s (二)
Gin系列二:Gin搭建Blog API’s (二)
【API设计】 涉及知识点 Gin:Golang 的一个微框架,性能极佳。 beego-validation:本节采用的 beego 的表单验证库,中文文档。 gorm,对开发人员友好的 ORM 框架,英文文档 com,一个小而美...
2024/11/26
Gin系列二:Gin搭建Blog API’s (一)
Gin系列二:Gin搭建Blog API’s (一)
【API设计】 思考 首先,在一个初始项目开始前,大家都要思考一下 程序的文本配置写在代码中,好吗? API 的错误码硬编码在程序中,合适吗? db 句柄谁都去Open,没有统一管理,好吗? 获取分页等公共参数,谁都自己写一...
2024/11/26
从gin框架看如何构建自己的http服务框架
从gin框架看如何构建自己的http服务框架
【API设计】 一、 背景 gin框架作为一个普遍使用的http服务开源框架,为了能更好地使用它,我们有必要对gin框架有个清晰的认识,了解框架中请求处理流程、中间件执行等细节。gin框架基于golang基础库 net/http 进行开发,先了解 n...
2024/11/26
Go工程化(五) API 设计下: 基于 protobuf 自动生成 gin 代码
Go工程化(五) API 设计下: 基于 protobuf 自动生成 gin 代码
【API设计】 方案设计 开始开发之前我们先看一下 gin 的路由是怎么注册的,以及 grpc 生成的接口格式是什么样的 gin example package main​import "github.com/gin-gonic/gin"...
2024/11/26
Go工程化(四) API 设计上: 项目结构 & 设计
Go工程化(四) API 设计上: 项目结构 & 设计
【API设计】 序 在 Go 工程化(二) 项目目录结构 中我们大概讲了一下 api 目录,但是并没有详细的说明,留在这这篇文章一起讲。 API 设计将分为四个部分: 首先会讲一下 API 的项目目录结构,在项目中 api 该如何组织,...
2024/11/26
为开源项目 go-gin-api 增加 WebSocket 模块
为开源项目 go-gin-api 增加 WebSocket 模块
【API设计】 WebSocket 示例界面 第三方包 gorilla/websocket[1] websocket 链接时支持配置项: type Upgrader struct { // 指定升级 webso...
2024/11/26
使用gin搭建api后台系统之框架搭建
使用gin搭建api后台系统之框架搭建
【API设计】 gin 是golang 中比较流行的框架,很多系统都是在该框架下开发的,这个框架给我的感觉像是Flask在python中的位置,基础的功能都有,但是如果想要很好的使用,还需要开发很多自己的功能与中间件,在看过不少的教程以后,想要记录一下学习...
2024/11/26
PHP转Go系列 | ThinkPHP与Gin框架之API接口签名设计实践
PHP转Go系列 | ThinkPHP与Gin框架之API接口签名设计实践
【API设计】 数据安全一直是个热门的话题,API 接口在数据的传输上扮演着至关重要的角色。为了 API 接口的安全性、健壮性,完整性,往往需要将网络上的数据进行签名加密传输。同时为了防止 API 接口被重放爬虫伪造等类似恶意攻击的手段,还要在接口设计时增加有效时间、随机字符串、签名串等参数,来保障数据的安全性。这一次的 API 接口签名设计实践,大家也可以手动尝试实验一下,希望对大家的日常工作能有所帮助。
2024/11/25
如何在软件开发中实施API First标准
如何在软件开发中实施API First标准
【API设计】 API 优先方法强调在软件开发生命周期伊始就将 API 设计与创建置于核心地位,将其视为决定其他应用程序代码开发的基础组件,从而确保服务之间的一致性与可重用性,为应用程序带来可扩展性、灵活性以及与微服务架构的无缝集成等显著优势。有效的 API 优先策略实施涵盖全面的文档、标准化的错误处理和强大的 API 治理,这不仅培养了更佳的开发人员体验、激发创新活力,还使得 API 能够在组织内跨不同语言和平台实现无缝交互,支持无依赖项的升级与更新,极大地增强了系统的健壮性与灵活性。尽管在采用 API 优先实践过程中可能存在诸如文化转变、技术多样性管理等挑战,但其带来的显著架构优势不容小觑,能够加快产品上市时间、实现经济高效的应用程序开发,推动组织在激烈的市场竞争中保持领先,引领软件开发迈向更具前瞻性与战略性的新阶段。
2024/11/22
百亿规模API网关服务Shepherd的设计与实现
百亿规模API网关服务Shepherd的设计与实现
【API设计】 API网关是随着微服务概念兴起的一种架构模式。原本一个庞大的单体应用(All in one)业务系统被拆分成许多微服务系统进行独立的维护和部署,服务拆分带来的变化是API的规模成倍增长,API的管理难度也在日益增加,使用API网关发布和管理API逐渐成为一种趋势。一般来说,API网关是运行于外部请求与内部服务之间的一个流量入口,实现对外部请求的协议转换、鉴权、流控、参数校验、监控等通用功能。
2024/11/21
我们应该如何用好 AI?从 ChatGPT 到编程语言、大数据、前端
我们应该如何用好 AI?从 ChatGPT 到编程语言、大数据、前端
【API产品】 2022 年是科技圈艰难的一年,很少有振奋人心的消息。惊喜的是年底 OpenAI 开放的 ChatGPT,一下点燃了整个科技圈,体验后感觉有点像人脑,智能化程度惊艳。曾经我和朋友常调侃人工智能就是“有多少人工,就有多少智能”,ChatGPT...
2024/11/21
通过API集成赋能Autogen Multi-Agent系统
通过API集成赋能Autogen Multi-Agent系统
【API设计】 本文探讨了微软开源的Autogen框架,该框架基于大型语言模型(LLM)构建自治代理(autonomous agents),支持多个代理的协作以实现共同目标。Autogen允许代理进行单聊和群聊,并提供多种发言人选择方法。尽管该框架在实现多个代理的协作方面具有优势,但在将其集成到实际生产环境中(如Web APP)时仍面临一些挑战,如缺乏成熟的文档和资源。 文章详细介绍了如何使用Autogen构建一个基于API的旅游代理系统,包含多个角色的代理,例如旅游代理、位置研究员和用户代理。系统通过与SERP API的交互,允许代理收集和处理用户的旅行需求。最后,文章讨论了在群聊中提高代理协作可预测性和一致性的可能方法,包括修改发言人选择逻辑和使用图模型来强制执行发言者转移路径。 总体而言,文章展示了Autogen在多代理系统中的应用潜力及其在实际应用中面临的挑战与解决方案。
2024/11/21
18个最佳API设计规范实践
18个最佳API设计规范实践
【API设计】 文章总结了API设计中应遵循的重要原则。首先强调了签名的重要性,通过将请求参数、时间戳和密钥拼接后进行hash算法处理生成签名,以防止数据被篡改,并通过时间戳限制请求的有效期。在数据安全方面,建议对敏感数据进行加密,如使用AES对称加密算法保护用户密码等重要信息。此外,文章还提出了其他设计要点,包括设置IP白名单以限制访问来源、实施限流策略以避免服务过载、进行严格的参数校验以拦截无效请求、统一返回值和异常处理以简化维护工作、记录详细的请求日志以便快速定位问题、设计幂等接口以避免重复操作、限制批量接口的记录条数以防止超时、进行压力测试以评估接口性能、采用异步处理以提升性能、对敏感数据进行脱敏处理以保护隐私、提供完整的接口文档以降低对接成本、合理选择请求方式、利用请求头传递公共参数、设计批量接口以提高通用性以及遵循职责单一原则以降低维护难度。这些军规旨在帮助开发者设计出更安全、高效、易维护的API接口。
2024/11/21
API性能提升宝典:12个必杀技
API性能提升宝典:12个必杀技
【API设计】 本文深入探讨了提升系统性能和优化技术的关键策略,包括并行处理、最小化事务范围、缓存应用、合理使用线程池、服务预热、缓存对齐、减少对象产生、并发处理、异步处理以及循环优化等十二个方面。文章强调了在高并发场景下,通过减少事务范围和合理使用缓存来提升系统响应速度和可靠性。同时,讨论了线程池的配置和监控、服务预热、缓存对齐以及减少对象产生的重要性,这些措施有助于降低系统延迟和提高吞吐量。
2024/11/20
如何设计API 接口的统一格式指南
如何设计API 接口的统一格式指南
【API设计】 前言 在移动互联网,分布式,微服务盛行的今天,现在项目绝大部分都采用的微服务框架,前分离分离方式 一般系统的大致整体架构图如下: 需要说明的是,有些小伙伴会回复说,这个架构太简单了吧,太low了,什么网关啊,缓存...
2024/11/20
1 7 8 9 10 11 14