在Golang中通过HTTP网络与TCP服务器进行通信的RESTful HTTP API

42 阅读1分钟

在这个例子中,我们将实现一个RESTful公共HTTP API,它与我们内部的TCP服务器进行通信,并有一个HTTP客户端来存储数据。这个过程非常简单,如下图所示。

  1. 用户向我们的公共RESTful HTTP API发送HTTP请求。

  2. RESTful HTTP API将请求转发给内部TCP服务器的HTTP客户端。

  3. TCP服务器存储数据。

  4. TCP服务器通过HTTP网络向TCP客户端返回响应。

  5. 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毫秒一个请求。