现代软件架构已经逐渐从单体架构转向微服务架构,在微服务架构中服务间通信采用轻量级通信机制。对于轻量级通信的协议而言,通常基于 HTTP 和 RPC ,能让服务间的通信变的标准化并且无状态化。此外开发模式也越来越多的采用前后端分离的模式,在前后端分离的模式中,前后端通信一般是通过 HTTP 进行通信。

不管是微服务架构,还是前后端分离模式,都需要一个 HTTP API 服务器。而且在日后的开发生涯中可能需要构建很多个大大小小的 API 服务器,构建一个简单的 API 服务器很简单,网上有很多教程,但都是不成体系的,非常简单的 hello world 程序,这些教程通常只是讲解开发过程中的某个点,每个人的设计思路也都是不同,并没有一个成系统,成体系的 Go 服务器开发教程可供参考,实际上构建一个企业级的 API 服务还有很多工作要做。

在构建 API 时,有一种构建风格叫 REST,它虽然调用性能不及 RPC,但维护性和扩展性更好,也更通用。由于本小册不讨论微服务之间的高频调用场景, 而 REST 在实际开发中,能够满足绝大部分的需求场景,基于它的其他优势,本小册采用 REST 风格来构建 API 服务器。此外,在媒体类型上选择了 JSON,因为它的内容更加紧凑,数据展现形式直观易懂,开发测试都非常方便。REST + JSON,这也是 Go API 开发中很常用的组合。

笔者在近七年的服务器开发过程中,调研了很多 API 构建方式,这些构建方式各有优缺点,此外也构建了多个大型 API 服务器,通过这些调研、构建经验以及开发过程中遇到的坑,笔者沉淀了一套 API 服务器的构建方法,在实际工作中也得到了充分的验证。这里希望通过小册的形式给需要的朋友提供一些帮助和指引,尤其是刚接触 Go 服务器开发没多久,想早点进阶为高手的同学。希望通过阅读本小册,既能让你学会怎么更好地去构建 API 开发过程中的各个功能点,也能收获实用的构建方法和开发建议。

作者介绍

雷克斯 腾讯高级研发工程师,毕业后曾在 Red Hat、联想集团任职,主要做后台服务器的开发。在微服务、容器云和后台 API 服务器构建上有丰富的经验,构建过 10万+ Docker 容器的容器云项目、百万级 QPS 的 API 项目。

名人推荐

你会学到什么

本小册是一个实战类的小册,根据开发流程教读者怎样一步步构建一个企业级的 API 服务器。从开发准备到 API 设计,再到 API 实现、测试和部署,每一步都详细介绍了构建技术和笔者的开发经验和建议。通过 17 个 demo,最终构建出一个企业级的 API 服务器。通过本小册的学习,你将学到如下知识点:

知识点很多,跟着小册一节一节进行学习,你将从 Go 服务器开发的新手进阶为老鸟。

最后如果你有兴趣,可以通过长按下方的二维码,享受5折优惠购买。

基于 Go 语言构建企业级的 RESTful API 服务相关推荐

  1. pycharm构建虚拟环境_10分钟,带你用Python构建RESTful API 服务

    1. 前言 上一篇文章,介绍了使用 Java + Spring Boot + MyBatis 构建 RESTful API 的详细步骤:很多小伙伴表示,更愿意用 Python 编写 RESTful A ...

  2. SpringBoot第十一篇:springboot集成swagger2,构建优雅的Restful API

    swagger,中文"拽"的意思.它是一个功能强大的api框架,它的集成非常简单,不仅提供了在线文档的查阅,而且还提供了在线文档的测试.另外swagger很容易构建restful风 ...

  3. 基于Java语言构建区块链(一)—— 基本原型

    最终内容请以原文为准:https://wangwei.one/posts/df1... 引言 区块链技术是一项比人工智能更具革命性的技术,人工智能只是提高了人类的生产力,而区块链则将改变人类社会的生产 ...

  4. 基于Java语言构建区块链(四)—— 交易(UTXO)

    基于Java语言构建区块链(四)-- 交易(UTXO) 2018年03月11日 00:48:01 wangwei_hz 阅读数:909 标签: 区块链比特币 更多 个人分类: 区块链 文章的主要思想和 ...

  5. 基于Java语言构建区块链(五)—— 地址(钱包)

    基于Java语言构建区块链(五)-- 地址(钱包) 2018年03月25日 18:02:06 wangwei_hz 阅读数:1292更多 个人分类: 区块链bitcoin比特币 文章的主要思想和内容均 ...

  6. 基于Java语言构建区块链(六)—— 交易(Merkle Tree)

    基于Java语言构建区块链(六)-- 交易(Merkle Tree) 2018年04月16日 10:21:35 wangwei_hz 阅读数:480更多 个人分类: 区块链比特币bitcoin 最终内 ...

  7. Docker——基于HubServing部署全套PaddleOCR Restful API服务(CPU版本)

    说明 1.同时部署ocr_det.ocr_cls.ocr_rec.ocr_system 2.基于https://gitee.com/paddlepaddle/PaddleOCR/blob/v2.0.0 ...

  8. Spring Cloud——基于OpenFeign调用PaddleOCR的Restful API服务解决方案

    PaddleOCR的Restful API服务部属 Docker化部署服务 PaddleOCR--Docker环境下基于HubServing模式部署Restful API服务(CPU版本) Maven ...

  9. PaddleOCR——Docker环境下基于HubServing模式部署Restful API服务(CPU版本)

    Docker环境下基于HubServing模式部署Restful API服务(CPU版本) 在日常项目应用中,相信大家一般都会希望能通过Docker技术,把PaddleOCR服务打包成一个镜像,以便在 ...

最新文章

  1. Python算法题----求出和为S的所有连续正整数数列
  2. 执行“conda create -n scrapyEnv python=3.6”,结果出现了“CondaHTTPError: HTTP 000 CONNECTION FAILED for url <h
  3. python中os.path.isdir()等函数的作用及用法
  4. MFC 进度条CProgressCtrl
  5. AI如何用特征、权重和避免过拟合等技术来分辨冬瓜和西瓜?
  6. 【三维深度学习】基于片元的渐进式三维点云上采样模型
  7. 为Flash Builder/Professional更新Flash Player
  8. oracle怎么自定义排序,查询时怎么根据一个自定义的函数来进行排序
  9. br php 配置,无法载入 mcrypt 扩展,br /请检查 PHP 配置终极解决方案
  10. MS DTC服务无法启动解决方法
  11. 中国数据库告别卡脖子:阿里再刷新全球纪录,代码100%自研
  12. android矢量图
  13. Mac 电脑 插显示器 提示:显示器不支持当前的输入时序,解决办法
  14. 云服务器布置_使用云端服务器 部署步骤(详细)
  15. map-box地图点击图标高亮事件
  16. 3ds运行linux,3ds自制操作软件
  17. python常用的表达式有关系表达式_数学关系式 表示成正确的 Python表达式为_________。_学小易找答案...
  18. java手机刷机精灵,按钮救星(按键精灵所有者读写权限)
  19. pdf太大了怎么缩小?怎么能缩小pdf文件大小?
  20. 历时三个月我上岸了,分享一下我的手撕腾讯面试官经历,外包的你拿到这份面试大全你上你也行

热门文章

  1. P6271 [湖北省队互测2014]一个人的数论(莫比乌斯反演,拉格朗日插值)
  2. html百度转到顶部 fixed,科技常识:完美解决安卓端百度浏览器屏蔽fixed悬浮元素的问题...
  3. poj3683(2-SAT)
  4. mysql运行正确结果显示_以下代码执行的结果是()
  5. 不存在从void转换到sqlist的适当构造函数_拷贝构造函数与赋值构造函数
  6. 前端网页、php与mysql数据库字符编码(解决中文等乱码问题
  7. 2018-2019-1 20165318《信息安全系统设计基础》第八周课上测试
  8. SQL 中left join ,inner join,right join的区别
  9. 阿士比亚:搜索团队智能内容生成实践
  10. JQuery Autocomplete实战