美文网首页
【Go-web开发】序言

【Go-web开发】序言

作者: Go语言由浅入深 | 来源:发表于2022-01-11 23:08 被阅读0次

    序言

    本书我们将从头到尾构建一个名为Greenlight的应用程序-用于检索和管理有关电影的信息的JSONAPI。

    你可以思考下它核心功能有点类似于开放电影数据库API

    最后我们的Greenlight API将支持以下API和操作:

    Method URL 动作
    GET /v1/healthcheck 显示应用程序运行状况和版本信息
    GET /v1/movies 显示所有电影的详情
    POST /v1/movies 添加新的电影
    GET /v1/movies/:id 根据id查询特定电影
    PATCH /v1/movies/:id 更新特定电影
    DELETE /v1/movies/:id 删除特定电影
    POST /v1/users 注册用户
    PUT /v1/users/activated 激活用户
    PUT /v1/users/password 更新用户密码
    POST /v1/tokens/authentication 生成新的身份验证token
    POST /v1/tokens/password-reset 生成一个新的密码重置令牌
    GET /debug/vars/ 显示应用性能参数

    为了能够从客户角度来看下API是怎样的,在本书末尾GET /v1/movies/:id端点将返回如下响应内容:

    curl -H "Authorization: Bearer RIDBIAE3AMMK57T6IAEBUGA7ZQ" localhost:4000/v1/movies/1
    
    {
    "movie": {
    "id": 1,
    "title": "Moana", "year": 2016, "runtime": "107 mins", "genres": [
    "animation",
    "adventure" ],
    "version": 1 }
    }
    

    在后端我们将使用PostgreSQL作为数据库来持久化所有的数据。并在本书的结尾,我们将在一台Linux服务器中部署完成后的API应用程序。

    文章格式约定

    在本书,代码块以Markdown格式显示,如下面的代码片段所示。如果代码块特别长,不相关的部分可以用省略号替换。为了便于理解,大多数代码块在顶部都有一个行文件名称,指示我们正在处理的文件。

    File: hello.go

    package main
    ... // Indicates that some existing code has been omitted.
    func sayHello() { fmt.Println("Hello world!")
    }
    

    终端(命令行)指令以黑色背景显示,通常以美元符号开始。这些命令应该可以在任何基于unix的操作系统上执行,包括macOS和Linux。命令执行结果以白色显示在命令下面,如下所示:

     $ echo "Hello world!"
    Hello world
    

    如果你使用Windows,你应该用DOS等价的命令替换这些命令,或者通过正常的Windows GUI执行操作。

    这本书的一些章节以附部分结束。这些部分包含的信息与我们的应用程序构建无关,但仍然很重要(有时只是有趣)。

    背景知识

    本书是接着Let's Go这本书来写的,将会沿用很多其中使用信息和代码模式。

    如果你已经读过并喜欢《Let’s Go》,那么这本书应该很适合你,是你下一步学习的理想读物。如果你还没有读,那么我强烈建议你先从Let's Go开始——特别是如果你是一个新手。

    您可以单独阅读这本书,但请注意它的难度更高——它没有详细解释基础知识,一些内容(如测试)根本没有出现,因为它们在前一本书中已经有大量介绍。但如果你已习惯使用Go,并且已经有了相当多的经验,那么这本书可能也很适合你。请随意直奔主题。

    GO 1.16

    本书中的代码使用最新的Go 1.16版本验证过,如果您想要跟随构建应用程序的话,就应该安装该版本。

    如果你已经安装了Go,你通过在终端中执行go version来检查版本。返回结果如下所示:

    $ go version
    go version go1.16 linux/amd64
    

    如果你需要升级Go,请马上开始。根据你的操作系统升级手册在这里

    其他软件

    如果你想要完全遵循本书,你应该确保你的电脑上有其他一些软件。它们是:

    • curl工具:处理来自终端的HTTP请求和响应。在MacOS和Linux机器上,它应该是预先安装的,或者在您的软件仓库中可用。否则,您可以从这里下载最新版本。

    • hey:用于进行一些基本负载测试的工具。如果你的电脑上有Go 1.16,你可以使用Go install命令安装hey:

       $ go install github.com/rakyll/hey@latest
      
    • git版本控制系统。所有操作系统的安装说明都可以在这里找到。

    • 浏览器:包含一些开发者工具。可以使用firefox、Chromium、Chrome或者Microsof Edge也可以。

    • 文本编辑器😄

    相关文章

      网友评论

          本文标题:【Go-web开发】序言

          本文链接:https://www.haomeiwen.com/subject/xubicrtx.html