【讨论题】怎么才能写出靠谱的 RESTful API 接口?
1.3k
等2人参与

题目描述

写接口是工程师的基本功。先看看写得好的接口返回的数字是什么样子,文档是什么样子。

请求比特币历史数据的接口,公网的开发接口,无需认证。

{
    "status": {
        "timestamp": "2021-02-08T06:19:27.474Z",
        "error_code": 0,
        "error_message": null,
        "elapsed": 12,
        "credit_count": 0,
        "notice": null
    },
    "data": {
        "id": 1,
        "name": "Bitcoin",
        "symbol": "BTC",
        "quotes": [
            {
                "time_open": "2021-02-06T00:00:00.000Z",
                "time_close": "2021-02-06T23:59:59.999Z",
                "time_high": "2021-02-06T16:02:41.000Z",
                "time_low": "2021-02-06T00:00:37.000Z",
                "quote": {
                    "USD": {
                        "open": 38138.38833975,
                        "high": 40846.54690329,
                        "low": 38138.38833975,
                        "close": 39266.01073494,
                        "volume": 71326033652.98,
                        "market_cap": 731192490092.84,
                        "timestamp": "2021-02-06T23:59:59.999Z"
                    }
                }
            }
        ]
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
代码块
复制 预览
复制成功!
代码块
复制 预览
复制成功!

可以看到里面有 status, data 两部分,status 里面有 error_code, error_message,出错了是什么情况,啥错误信息。

图片描述

图片描述

思路点拨

文档效果是上面的样子,每一个参数,每一种状态码都详细解释,这些都要在代码里实现。所以说写接口看似简单的基本功,但要写出靠谱的接口,工作量不小,前期合理的规划不能少。之前为配合讲解免费课《Django REST framework 前后端分离框架实践》转载过一篇手记,(转)深入理解什么是 RESTful API。提到了 10 点 RESTful 设计指南,这里在重复一下:

  1. 协议
  2. 域名
  3. 版本(Versioning)
  4. 路径(EndPoint)
  5. HTTP 动词
  6. 过滤信息(Filtering)
  7. 状态码(Status Code)
  8. 错误处理(Error Handling)
  9. 返回结果
  10. Hypermedia API

能把上面 10 点都做到,你写的接口肯定靠谱。要不然就是用的人不靠谱…(大家要学会甩锅给前端)。

欢迎大家补充,以上 10 点是否能解决你在实际开发中遇到的的问题。

我的作业
去发布

登录后即可发布作业,立即

全部作业

字符集(Character Set)

字符集是一个用于表示文本字符的符号集合。它定义了所有可能的字符,包括字母、数字、标点符号和特殊符号等。例如,ASCII(美国信息交换标准代码)是一个字符集,它包含了128个字符,用于表示英文文本和一些基本的控制字符。而Unicode则是一个更为广泛的字符集,它旨在涵盖世界上所有书写系统的字符,包括各种语言的字母、符号、标点符号等。
编码(Encoding)

编码是将字符集中的字符映射到计算机可以处理(存储和传输)的数字代码的过程。每个字符在编码方案中都有一个唯一的数字表示。例如,在ASCII编码中,大写字母A的编码是65,小写字母z的编码是122。而在Unicode编码中,字符被映射到一个更大的数字空间,以便能够表示更多的字符。
为什么需要编码?

计算机内部处理:计算机内部使用二进制数字(0和1)进行运算和存储。编码是将人类可读的字符转换为计算机可处理的二进制形式的关键步骤。

数据存储:通过将字符编码为数字,我们可以将文本信息存储在计算机的内存、硬盘或其他存储介质中。

数据传输:编码允许字符数据通过计算机网络进行传输。例如,当我们在网页上输入文本时,这些文本字符会被编码为二进制数据,然后通过互联网发送到服务器。

多语言支持:不同的字符集支持不同的语言和字符。Unicode等广泛字符集和相应的编码方案(如UTF-8、UTF-16)使得计算机能够处理和显示多种语言的文本,促进了全球化交流和信息共享。

数据一致性:使用统一的编码标准可以确保在不同系统和平台之间传输和显示文本时的一致性和准确性。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
代码块
复制 预览
复制成功!
代码块
复制 预览
复制成功!

总之,字符集定义了可以使用的字符,而编码则是将这些字符转换为计算机可以理解和处理的数字形式。编码的存在使得文本数据能够在计算机系统中被有效地存储、处理和传输。

0
评论
提交于  2025-02-16 15:02:31

登录后即可查看更多作业,立即

微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号