在这个例子中,我们将实现一个RESTful公共HTTP API,它与我们内部的TCP服务器进行通信,并有一个HTTP客户端来存储数据。这个过程非常简单,如下图所示。
-
用户向我们的公共RESTful HTTP API发送HTTP请求。
-
RESTful HTTP API将请求转发给内部TCP服务器的HTTP客户端。
-
TCP服务器存储数据。
-
TCP服务器通过HTTP网络向TCP客户端返回响应。
-
RESTful HTTP API向用户作出回应。
User (HTTP request) -> RESTful HTTP API (HTTP request) -> TCP Server (TCP response) -> RESTful HTTP API (HTTP response) -> User
改进之处
在可能的改进方面,你可以在客户端对HTTP请求进行超时处理。
客户端结构
├── cmd
客户端文件
main.go
package main
client.go
package client
router.go
package router
server.go
package server
创建.go
package user
服务器结构
├── cmd
文件
main.go
package main
router.go
package http
server.go
package http
监听器.go
package tcp
create.go
实际上,你不需要下面的net.Listener 。
package user
测试
假设你的服务器和客户端都在运行。
curl -i -X POST -d '{"username":"username","password":"password"}' "http://0.0.0.0:8888/api/v1/users"
在20/22秒内提供了1000个HTTP请求,相当于每20/22毫秒一个请求。