Skip to content

Commit ff1a9ee

Browse files
committed
docs: add Chinese README docs with setup and API usage examples
- Add Simplified Chinese and Traditional Chinese README documentation - Provide installation instructions and usage examples for graceful shutdown with Gin in both new README files - Include API reference for all server lifecycle methods and configuration options in the new documentation Signed-off-by: appleboy <[email protected]>
1 parent bbde40b commit ff1a9ee

File tree

2 files changed

+266
-0
lines changed

2 files changed

+266
-0
lines changed

README.zh-cn.md

Lines changed: 133 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
1+
# graceful
2+
3+
[English](README.md) | [繁體中文](README.zh-tw.md) | 简体中文
4+
5+
![Run Tests](https://github.com/gin-contrib/graceful/actions/workflows/go.yml/badge.svg?branch=master)
6+
![codecov](https://codecov.io/gh/gin-contrib/graceful/branch/master/graph/badge.svg)
7+
![Go Report Card](https://goreportcard.com/badge/github.com/gin-contrib/graceful)
8+
![GoDoc](https://godoc.org/github.com/gin-contrib/graceful?status.svg)
9+
10+
**graceful** 是 Gin 的一个封装器,为 HTTP 服务器提供强大且灵活的优雅关闭能力。它允许你启动、停止及平滑关闭服务器,并支持多种监听机制,包括 TCP、Unix socket、文件描述符或自定义 listener。
11+
12+
- [graceful](#graceful)
13+
- [特性](#特性)
14+
- [安装方法](#安装方法)
15+
- [使用示例](#使用示例)
16+
- [API 概览](#api-概览)
17+
- [Graceful 类型](#graceful-类型)
18+
- [服务器启动方法](#服务器启动方法)
19+
- [关闭与清理方法](#关闭与清理方法)
20+
- [选项](#选项)
21+
- [许可证](#许可证)
22+
23+
## 特性
24+
25+
- 为 Gin HTTP 服务器无缝实现优雅关闭功能
26+
- 支持 TCP、TLS、Unix socket、文件描述符和自定义 net.Listener
27+
- 线程安全的启动/停止流程和基于 context 的取消
28+
- 保证所有活动连接都被妥善处理后再终止
29+
- 简洁 API 并支持自定义选项
30+
31+
## 安装方法
32+
33+
```bash
34+
go get github.com/gin-contrib/graceful
35+
```
36+
37+
## 使用示例
38+
39+
```go
40+
package main
41+
42+
import (
43+
"context"
44+
"net/http"
45+
"os/signal"
46+
"syscall"
47+
48+
"github.com/gin-contrib/graceful"
49+
"github.com/gin-gonic/gin"
50+
)
51+
52+
func main() {
53+
ctx, stop := signal.NotifyContext(context.Background(), syscall.SIGINT, syscall.SIGTERM)
54+
defer stop()
55+
56+
router, err := graceful.Default()
57+
if err != nil {
58+
panic(err)
59+
}
60+
defer router.Close()
61+
62+
router.GET("/", func(c *gin.Context) {
63+
c.String(http.StatusOK, "Welcome Gin Server")
64+
})
65+
66+
if err := router.RunWithContext(ctx); err != nil && err != context.Canceled {
67+
panic(err)
68+
}
69+
}
70+
```
71+
72+
## API 概览
73+
74+
### Graceful 类型
75+
76+
主要类型为:
77+
78+
```go
79+
type Graceful struct {
80+
*gin.Engine
81+
// 内部同步/context 字段
82+
}
83+
```
84+
85+
### 服务器启动方法
86+
87+
- **Default(opts ...Option) \*Graceful, error**
88+
创建一个带默认 Gin 中间件的 `Graceful` 实例。
89+
90+
- **New(router *gin.Engine, opts ...Option) \*Graceful, error**
91+
封装已有 `gin.Engine`
92+
93+
- **Run(addr ...string) error**
94+
在一个或多个 TCP 地址启动 HTTP 服务器。
95+
96+
- **RunTLS(addr, certFile, keyFile string) error**
97+
在指定地址启动 HTTPS 服务器。
98+
99+
- **RunUnix(file string) error**
100+
在指定 Unix socket 启动服务器。
101+
102+
- **RunFd(fd uintptr) error**
103+
使用给定文件描述符启动服务器。
104+
105+
- **RunListener(listener net.Listener) error**
106+
在自定义的 `net.Listener` 启动服务器。
107+
108+
- **RunWithContext(ctx context.Context) error**
109+
在绑定 context 生命周期下启动服务器。推荐配合信号处理关闭使用。
110+
111+
### 关闭与清理方法
112+
113+
- **Shutdown(ctx context.Context) error**
114+
优雅关闭服务器,并等待所有活动连接断开。
115+
116+
- **Start() error**
117+
在 goroutine 中启动服务器,需自行调用 `Stop()` 终止。
118+
119+
- **Stop() error**
120+
停止由 `Start()` 启动的 Graceful 实例。
121+
122+
- **Close()**
123+
清理内部状态并关闭正在运行的服务器。
124+
125+
### 选项
126+
127+
多种选项(详见代码 `Option` 接口及实现),可配置服务器,包括自定义地址、TLS、Unix socket、文件描述符和 listener。
128+
129+
---
130+
131+
## 许可证
132+
133+
本项目基于 [MIT License](LICENSE) 授权。

README.zh-tw.md

Lines changed: 133 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
1+
# graceful
2+
3+
[English](README.md) | 繁體中文 | [简体中文](README.zh-cn.md)
4+
5+
![Run Tests](https://github.com/gin-contrib/graceful/actions/workflows/go.yml/badge.svg?branch=master)
6+
![codecov](https://codecov.io/gh/gin-contrib/graceful/branch/master/graph/badge.svg)
7+
![Go Report Card](https://goreportcard.com/badge/github.com/gin-contrib/graceful)
8+
![GoDoc](https://godoc.org/github.com/gin-contrib/graceful?status.svg)
9+
10+
**graceful** 是 Gin 的一個包裝器,為 HTTP 伺服器提供強大且靈活的優雅關閉能力。它允許你啟動、停止及平滑地關閉伺服器,並支援各種監聽方式,包括 TCP、Unix socket、檔案描述符或自訂 listener。
11+
12+
- [graceful](#graceful)
13+
- [特色](#特色)
14+
- [安裝方式](#安裝方式)
15+
- [使用範例](#使用範例)
16+
- [API 概覽](#api-概覽)
17+
- [Graceful 型別](#graceful-型別)
18+
- [伺服器啟動方法](#伺服器啟動方法)
19+
- [關閉與清理方法](#關閉與清理方法)
20+
- [選項](#選項)
21+
- [授權條款](#授權條款)
22+
23+
## 特色
24+
25+
- 為 Gin HTTP 伺服器提供無縫的優雅關閉功能
26+
- 支援 TCP、TLS、Unix socket、檔案描述符和自訂 net.Listener
27+
- 執行緒安全的啟動/停止程序與基於 context 的取消控制
28+
- 確保所有活動連線都被妥善處理後再終止
29+
- 提供簡潔 API 與可自訂選項
30+
31+
## 安裝方式
32+
33+
```bash
34+
go get github.com/gin-contrib/graceful
35+
```
36+
37+
## 使用範例
38+
39+
```go
40+
package main
41+
42+
import (
43+
"context"
44+
"net/http"
45+
"os/signal"
46+
"syscall"
47+
48+
"github.com/gin-contrib/graceful"
49+
"github.com/gin-gonic/gin"
50+
)
51+
52+
func main() {
53+
ctx, stop := signal.NotifyContext(context.Background(), syscall.SIGINT, syscall.SIGTERM)
54+
defer stop()
55+
56+
router, err := graceful.Default()
57+
if err != nil {
58+
panic(err)
59+
}
60+
defer router.Close()
61+
62+
router.GET("/", func(c *gin.Context) {
63+
c.String(http.StatusOK, "Welcome Gin Server")
64+
})
65+
66+
if err := router.RunWithContext(ctx); err != nil && err != context.Canceled {
67+
panic(err)
68+
}
69+
}
70+
```
71+
72+
## API 概覽
73+
74+
### Graceful 型別
75+
76+
主要型別為:
77+
78+
```go
79+
type Graceful struct {
80+
*gin.Engine
81+
// 內部同步與 context 欄位
82+
}
83+
```
84+
85+
### 伺服器啟動方法
86+
87+
- **Default(opts ...Option) \*Graceful, error**
88+
建立具預設 Gin middleware 的 `Graceful` 實例。
89+
90+
- **New(router *gin.Engine, opts ...Option) \*Graceful, error**
91+
包裝現有 `gin.Engine`
92+
93+
- **Run(addr ...string) error**
94+
於一個或多個 TCP 位址啟動 HTTP 伺服器。
95+
96+
- **RunTLS(addr, certFile, keyFile string) error**
97+
於指定位址啟動 HTTPS 伺服器。
98+
99+
- **RunUnix(file string) error**
100+
於指定 Unix socket 啟動伺服器。
101+
102+
- **RunFd(fd uintptr) error**
103+
利用給定檔案描述符啟動伺服器。
104+
105+
- **RunListener(listener net.Listener) error**
106+
於自訂的 `net.Listener` 啟動伺服器。
107+
108+
- **RunWithContext(ctx context.Context) error**
109+
於 context 綁定的生命週期中啟動伺服器。建議信號處理時使用。
110+
111+
### 關閉與清理方法
112+
113+
- **Shutdown(ctx context.Context) error**
114+
優雅地關閉伺服器,並等候所有活動連線終止。
115+
116+
- **Start() error**
117+
於 goroutine 啟動伺服器,你必須呼叫 `Stop()` 來終止。
118+
119+
- **Stop() error**
120+
停止先前以 `Start()` 啟動的 Graceful 實例。
121+
122+
- **Close()**
123+
清理內部狀態並關閉所有執行中伺服器。
124+
125+
### 選項
126+
127+
各種選項(參見程式碼 `Option` 介面 / 實作)允許設定伺服器,包括自訂位址、TLS、Unix socket、檔案描述符與 listener。
128+
129+
---
130+
131+
## 授權條款
132+
133+
本專案依 [MIT License](LICENSE) 授權。

0 commit comments

Comments
 (0)