Skip to content

Commit

Permalink
README
Browse files Browse the repository at this point in the history
  • Loading branch information
Ceelog committed Jan 29, 2021
1 parent b89a552 commit 49a8de9
Showing 1 changed file with 35 additions and 45 deletions.
80 changes: 35 additions & 45 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,73 +11,63 @@ A fast [feishu](https://open.feishu.cn/) development sdk written in Golang
go get github.com/fastwego/feishu
```
```go
// 创建应用
App = feishu.NewApp(feishu.AppConfig{
AppId: "APPID",
AppSecret: "SECRET",
})
// 内部应用 tenant_access_token 管理器
Atm = &feishu.DefaultAccessTokenManager{
Id: FeishuConfig["AppId"],
Cache: file.New(os.TempDir()),
GetRefreshRequestFunc: func() *http.Request {
payload := `{
"app_id":"` + FeishuConfig["AppId"] + `",
"app_secret":"` + FeishuConfig["AppSecret"] + `"
}`
req, _ := http.NewRequest(http.MethodPost, feishu.ServerUrl+"/open-apis/auth/v3/tenant_access_token/internal/", strings.NewReader(payload))
return req
},
}

// 创建 飞书 客户端
FeishuClient = feishu.NewClient()

// 调用 api 接口
params = url.Values{}
params.Add("calendarId", "10086")
resp, err := calendar.GetCalendarById(App, params)
fmt.Println(string(resp), err)
tenantAccessToken, _ := Atm.GetAccessToken()

params := url.Values{}
params.Add("page_size", "10")
request, _ := http.NewRequest(http.MethodGet, feishu.ServerUrl+"/open-apis/meeting_room/building/list?"+params.Encode(), nil)
resp, err := FeishuClient.Do(request, tenantAccessToken)
```

完整演示项目:

[https://github.com/fastwego/feishu-demo](https://github.com/fastwego/feishu-demo)

API 列表:

[doc/apilist.md](doc/apilist.md)

## 架构设计

![sdk](./doc/img/sdk.jpg)

## 框架特点

### 快速

「快」作为框架设计的核心理念,体现在方方面面:

- 使用 Go 语言,开发快、编译快、部署快、运行快,轻松服务海量用户
- 丰富的[文档](https://pkg.go.dev/github.com/fastwego/feishu)[演示代码](https://github.com/fastwego/feishu-demo) ,快速上手,5 分钟即可搭建一个完整地飞书 App
- 独立清晰的模块划分,快速熟悉整个框架,没有意外,一切都是你期望的样子
- 甚至连框架自身的大部分代码也是自动生成的,维护更新快到超乎想象

### 符合直觉

作为第三方开发框架,尽可能贴合官方文档和设计,不引入新的概念,不给开发者添加学习负担

### 简洁而不过度封装

作为具体业务和飞书服务的中间层,专注于通道的角色:帮业务把配置/材料投递到飞书,将飞书响应/推送透传回业务

至于 AccessToken 管理 和 消息加解密处理,框架内部完成得干净利落,开发者甚至觉察不到存在

### 官方文档就是最好的文档

每个接口的注释都附带官方文档的链接,让你随时翻阅,省时省心

### 完备的单元测试

100% 覆盖每一个接口,让你每一次调用都信心满满

### 详细的日志

每个关键环节都为你完整记录,Debug 倍轻松,你可以自由定义日志输出,甚至可以关闭日志

### 活跃的开发者社区
- 直接调用接口,最少封装,自由嵌入业务逻辑
- 简单而强大的 AccessToken 管理:
- 默认将 AccessToken 缓存到本机临时目录下
- 过期自动重新获取
- 支持自定义 AccessToken 的获取和管理方法,扩展应用场景
- 支持企业内部应用/应用商店应用不同类型的 AccessToken 管理
- 事件回调加解密处理
- 丰富完整&支持自定义的日志
- 支持自定义 http.Client:
- 默认使用 http.DefaultClient

## 活跃的开发者社区

FastWeGo 是一套丰富的 Go 服务开发框架,支持飞书、微信等服务,拥有庞大的开发者用户群体

你遇到的所有问题几乎都可以在社区找到解决方案

## 参与贡献

欢迎提交 pull request / issue / 文档,一起让 Golang 开发更快更好!
欢迎提交 pull request / issue / 文档,一起让飞书开发更快更好!

Faster we go together!

Expand Down

0 comments on commit 49a8de9

Please sign in to comment.