Go 语言项目开发实战
孔令飞
腾讯云资深工程师,前Red Hat、联想云工程师
新⼈⾸单¥69.9
2673 人已学习
课程目录
已更新 14 讲 / 共 54 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 从 0 开始搭建一个企业级 Go 应用
免费
课前必学 (3讲)
01 | IAM系统概述:我们要实现什么样的 Go 项目?
02 | 环境准备:如何安装和配置一个基本的 Go 开发环境?
03 | 项目部署:如何快速部署 IAM 系统?
实战第 1 站:规范设计 (8讲)
04 | 规范设计(上):项目开发杂乱无章,如何规范?
05 | 规范设计(下):commit 信息风格迥异、难以阅读,如何规范?
06 | 目录结构设计:如何组织一个可维护、可扩展的代码目录?
07 | 工作流设计:如何设计合理的多人开发模式?
08 | 研发流程设计(上):如何设计 Go 项目的开发流程?
09 | 研发流程设计(下):如何管理应用的生命周期?
10 | 设计方法:怎么写出优雅的 Go 项目?
11 | 设计模式:Go常用设计模式概述
实战第2站:基础功能设计或开发 (1讲)
12 | API 风格(上):如何设计RESTful API?
特别放送 (1讲)
特别放送 | 给你一份清晰、可直接套用的Go编码规范
Go 语言项目开发实战
15
15
1.0x
00:00/00:00
登录|注册

12 | API 风格(上):如何设计RESTful API?

你好,我是孔令飞。从今天开始,我们就要进入实战第二站,开始学习如何设计和开发 Go 项目开发中的基础功能了。接下来两讲,我们一起来看下如何设计应用的 API 风格。
绝大部分的 Go 后端服务需要编写 API 接口,对外提供服务。所以在开发之前,我们需要确定一种 API 风格。API 风格也可以理解为 API 类型,目前业界常用的 API 风格有三种:REST、RPC 和 GraphQL。我们需要根据项目需求,并结合 API 风格的特点,确定使用哪种 API 风格,这对以后的编码实现、通信方式和通信效率都有很大的影响。
在 Go 项目开发中,用得最多的是 REST 和 RPC,我们在 IAM 实战项目中也使用了 REST 和 RPC 来构建示例项目。接下来的两讲,我会详细介绍下 REST 和 RPC 这两种风格,如果你对 GraphQL 感兴趣,GraphQL 中文官网有很多文档和代码示例,你可以自行学习。
这一讲,我们先来看下 RESTful API 风格设计,下一讲再介绍下 RPC API 风格。

RESTful API 介绍

在回答“RESTful API 是什么”之前,我们先来看下 REST 是什么意思:REST 代表的是表现层状态转移(REpresentational State Transfer),由 Roy Fielding 在他的论文《Architectural Styles and the Design of Network-based Software Architectures》里提出。REST 本身并没有创造新的技术、组件或服务,它只是一种软件架构风格,是一组架构约束条件和原则,而不是技术框架。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/1000字
划线
笔记
复制
该试读文章来自付费专栏《Go 语言项目开发实战》,如需阅读全部文章,
请订阅文章所属专栏新⼈⾸单¥69.9
立即订阅
登录 后留言

精选留言(3)

  • 
    像RESTful 中 对某个资源的获取 api 中,针对某个特定资源的获取是尽量精简还是需要详细?
    如 需求是 获取最近十条的最新数据
    应该是 GET: /data?order=createdAt,desc
    还是使用 GET: /last10data
    像在 前后端分离的埸景下
    是尽量希望不要暴露太多细节给前端好
    还是尽量提供更多的参数细节可让前端调用好?
    2021-06-23
  • pedro
    在过去的经验中,RESTful API对于动词性API不能很好的work,比如说修改密码,重置密码等,很难通过URL和HTTP方法表征出来。
    但是对于Github,豆瓣等资源性API,大量的都是资源获取与删除,就特别适合RESTful。

    作者回复: 是的,可以将这些动词抽象成一个属性

    2021-06-22
    2
  • cxn
    URI中使用_踩过坑,谷歌业务中URI中不能出现_
    2021-06-22
收起评论
3
返回
顶部