1 Star 0 Fork 0

Larksuite/oapi-sdk-go

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
api.go 43.84 KB
一键复制 编辑 原始数据 按行查看 历史
zhailuxu 提交于 2022-09-07 13:50 +08:00 . add sdk
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139
// Package bitable code generated by oapi sdk gen
/*
* MIT License
*
* Copyright (c) 2022 Lark Technologies Pte. Ltd.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice, shall be included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
package larkbitable
import (
"context"
"net/http"
"gitee.com/larksuite/oapi-sdk-go/v3/core"
)
func NewService(config *larkcore.Config) *BitableService {
b := &BitableService{config: config}
b.App = &app{service: b}
b.AppDashboard = &appDashboard{service: b}
b.AppRole = &appRole{service: b}
b.AppRoleMember = &appRoleMember{service: b}
b.AppTable = &appTable{service: b}
b.AppTableField = &appTableField{service: b}
b.AppTableForm = &appTableForm{service: b}
b.AppTableFormField = &appTableFormField{service: b}
b.AppTableRecord = &appTableRecord{service: b}
b.AppTableView = &appTableView{service: b}
return b
}
type BitableService struct {
config *larkcore.Config
App *app // 多维表格
AppDashboard *appDashboard // 仪表盘
AppRole *appRole // 自定义角色
AppRoleMember *appRoleMember // 协作者
AppTable *appTable // 数据表
AppTableField *appTableField // 字段
AppTableForm *appTableForm // 表单
AppTableFormField *appTableFormField // 表单
AppTableRecord *appTableRecord // 记录
AppTableView *appTableView // 视图
}
type app struct {
service *BitableService
}
type appDashboard struct {
service *BitableService
}
type appRole struct {
service *BitableService
}
type appRoleMember struct {
service *BitableService
}
type appTable struct {
service *BitableService
}
type appTableField struct {
service *BitableService
}
type appTableForm struct {
service *BitableService
}
type appTableFormField struct {
service *BitableService
}
type appTableRecord struct {
service *BitableService
}
type appTableView struct {
service *BitableService
}
// 获取多维表格元数据
//
// - 通过 app_token 获取多维表格元数据
//
// - 该接口支持调用频率上限为 20 QPS
//
// - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app/get
//
// - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/get_app.go
func (a *app) Get(ctx context.Context, req *GetAppReq, options ...larkcore.RequestOptionFunc) (*GetAppResp, error) {
// 发起请求
apiReq := req.apiReq
apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token"
apiReq.HttpMethod = http.MethodGet
apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant}
apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...)
if err != nil {
return nil, err
}
// 反序列响应结果
resp := &GetAppResp{ApiResp: apiResp}
err = apiResp.JSONUnmarshalBody(resp)
if err != nil {
return nil, err
}
return resp, err
}
// 更新多维表格元数据
//
// - 通过 app_token 更新多维表格元数据
//
// - - 飞书文档、飞书表格、知识库中的多维表格不支持开启高级权限;- 此接口非原子操作,先修改多维表格名字,后开关高级权限。可能存在部分成功的情况
//
// - 该接口支持调用频率上限为 10 QPS
//
// - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app/update
//
// - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/update_app.go
func (a *app) Update(ctx context.Context, req *UpdateAppReq, options ...larkcore.RequestOptionFunc) (*UpdateAppResp, error) {
// 发起请求
apiReq := req.apiReq
apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token"
apiReq.HttpMethod = http.MethodPut
apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant}
apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...)
if err != nil {
return nil, err
}
// 反序列响应结果
resp := &UpdateAppResp{ApiResp: apiResp}
err = apiResp.JSONUnmarshalBody(resp)
if err != nil {
return nil, err
}
return resp, err
}
// 列出仪表盘
//
// - 根据 app_token,获取多维表格下的所有仪表盘
//
// - 该接口支持调用频率上限为 20 QPS
//
// - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-dashboard/list
//
// - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/list_appDashboard.go
func (a *appDashboard) List(ctx context.Context, req *ListAppDashboardReq, options ...larkcore.RequestOptionFunc) (*ListAppDashboardResp, error) {
// 发起请求
apiReq := req.apiReq
apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/dashboards"
apiReq.HttpMethod = http.MethodGet
apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser}
apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...)
if err != nil {
return nil, err
}
// 反序列响应结果
resp := &ListAppDashboardResp{ApiResp: apiResp}
err = apiResp.JSONUnmarshalBody(resp)
if err != nil {
return nil, err
}
return resp, err
}
func (a *appDashboard) ListByIterator(ctx context.Context, req *ListAppDashboardReq, options ...larkcore.RequestOptionFunc) (*ListAppDashboardIterator, error) {
return &ListAppDashboardIterator{
ctx: ctx,
req: req,
listFunc: a.List,
options: options,
limit: req.Limit}, nil
}
// 新增自定义角色
//
// - 新增自定义角色
//
// - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-role/create
//
// - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/create_appRole.go
func (a *appRole) Create(ctx context.Context, req *CreateAppRoleReq, options ...larkcore.RequestOptionFunc) (*CreateAppRoleResp, error) {
// 发起请求
apiReq := req.apiReq
apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/roles"
apiReq.HttpMethod = http.MethodPost
apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant}
apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...)
if err != nil {
return nil, err
}
// 反序列响应结果
resp := &CreateAppRoleResp{ApiResp: apiResp}
err = apiResp.JSONUnmarshalBody(resp)
if err != nil {
return nil, err
}
return resp, err
}
// 删除自定义角色
//
// - 删除自定义角色
//
// - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-role/delete
//
// - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/delete_appRole.go
func (a *appRole) Delete(ctx context.Context, req *DeleteAppRoleReq, options ...larkcore.RequestOptionFunc) (*DeleteAppRoleResp, error) {
// 发起请求
apiReq := req.apiReq
apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/roles/:role_id"
apiReq.HttpMethod = http.MethodDelete
apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant}
apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...)
if err != nil {
return nil, err
}
// 反序列响应结果
resp := &DeleteAppRoleResp{ApiResp: apiResp}
err = apiResp.JSONUnmarshalBody(resp)
if err != nil {
return nil, err
}
return resp, err
}
// 列出自定义角色
//
// - 列出自定义角色
//
// - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-role/list
//
// - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/list_appRole.go
func (a *appRole) List(ctx context.Context, req *ListAppRoleReq, options ...larkcore.RequestOptionFunc) (*ListAppRoleResp, error) {
// 发起请求
apiReq := req.apiReq
apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/roles"
apiReq.HttpMethod = http.MethodGet
apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant}
apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...)
if err != nil {
return nil, err
}
// 反序列响应结果
resp := &ListAppRoleResp{ApiResp: apiResp}
err = apiResp.JSONUnmarshalBody(resp)
if err != nil {
return nil, err
}
return resp, err
}
func (a *appRole) ListByIterator(ctx context.Context, req *ListAppRoleReq, options ...larkcore.RequestOptionFunc) (*ListAppRoleIterator, error) {
return &ListAppRoleIterator{
ctx: ctx,
req: req,
listFunc: a.List,
options: options,
limit: req.Limit}, nil
}
// 更新自定义角色
//
// - 更新自定义角色
//
// - 更新自定义角色是全量更新,会完全覆盖旧的自定义角色设置
//
// - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-role/update
//
// - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/update_appRole.go
func (a *appRole) Update(ctx context.Context, req *UpdateAppRoleReq, options ...larkcore.RequestOptionFunc) (*UpdateAppRoleResp, error) {
// 发起请求
apiReq := req.apiReq
apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/roles/:role_id"
apiReq.HttpMethod = http.MethodPut
apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant}
apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...)
if err != nil {
return nil, err
}
// 反序列响应结果
resp := &UpdateAppRoleResp{ApiResp: apiResp}
err = apiResp.JSONUnmarshalBody(resp)
if err != nil {
return nil, err
}
return resp, err
}
// 批量新增协作者
//
// - 批量新增自定义角色的协作者
//
// - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-role-member/batch_create
//
// - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/batchCreate_appRoleMember.go
func (a *appRoleMember) BatchCreate(ctx context.Context, req *BatchCreateAppRoleMemberReq, options ...larkcore.RequestOptionFunc) (*BatchCreateAppRoleMemberResp, error) {
// 发起请求
apiReq := req.apiReq
apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/roles/:role_id/members/batch_create"
apiReq.HttpMethod = http.MethodPost
apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser}
apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...)
if err != nil {
return nil, err
}
// 反序列响应结果
resp := &BatchCreateAppRoleMemberResp{ApiResp: apiResp}
err = apiResp.JSONUnmarshalBody(resp)
if err != nil {
return nil, err
}
return resp, err
}
// 批量删除协作者
//
// - 批量删除自定义角色的协作者
//
// - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-role-member/batch_delete
//
// - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/batchDelete_appRoleMember.go
func (a *appRoleMember) BatchDelete(ctx context.Context, req *BatchDeleteAppRoleMemberReq, options ...larkcore.RequestOptionFunc) (*BatchDeleteAppRoleMemberResp, error) {
// 发起请求
apiReq := req.apiReq
apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/roles/:role_id/members/batch_delete"
apiReq.HttpMethod = http.MethodPost
apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser}
apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...)
if err != nil {
return nil, err
}
// 反序列响应结果
resp := &BatchDeleteAppRoleMemberResp{ApiResp: apiResp}
err = apiResp.JSONUnmarshalBody(resp)
if err != nil {
return nil, err
}
return resp, err
}
// 新增协作者
//
// - 新增自定义角色的协作者
//
// - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-role-member/create
//
// - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/create_appRoleMember.go
func (a *appRoleMember) Create(ctx context.Context, req *CreateAppRoleMemberReq, options ...larkcore.RequestOptionFunc) (*CreateAppRoleMemberResp, error) {
// 发起请求
apiReq := req.apiReq
apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/roles/:role_id/members"
apiReq.HttpMethod = http.MethodPost
apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant}
apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...)
if err != nil {
return nil, err
}
// 反序列响应结果
resp := &CreateAppRoleMemberResp{ApiResp: apiResp}
err = apiResp.JSONUnmarshalBody(resp)
if err != nil {
return nil, err
}
return resp, err
}
// 删除协作者
//
// - 删除自定义角色的协作者
//
// - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-role-member/delete
//
// - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/delete_appRoleMember.go
func (a *appRoleMember) Delete(ctx context.Context, req *DeleteAppRoleMemberReq, options ...larkcore.RequestOptionFunc) (*DeleteAppRoleMemberResp, error) {
// 发起请求
apiReq := req.apiReq
apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/roles/:role_id/members/:member_id"
apiReq.HttpMethod = http.MethodDelete
apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant}
apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...)
if err != nil {
return nil, err
}
// 反序列响应结果
resp := &DeleteAppRoleMemberResp{ApiResp: apiResp}
err = apiResp.JSONUnmarshalBody(resp)
if err != nil {
return nil, err
}
return resp, err
}
// 列出协作者
//
// - 列出自定义角色的协作者
//
// - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-role-member/list
//
// - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/list_appRoleMember.go
func (a *appRoleMember) List(ctx context.Context, req *ListAppRoleMemberReq, options ...larkcore.RequestOptionFunc) (*ListAppRoleMemberResp, error) {
// 发起请求
apiReq := req.apiReq
apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/roles/:role_id/members"
apiReq.HttpMethod = http.MethodGet
apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant}
apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...)
if err != nil {
return nil, err
}
// 反序列响应结果
resp := &ListAppRoleMemberResp{ApiResp: apiResp}
err = apiResp.JSONUnmarshalBody(resp)
if err != nil {
return nil, err
}
return resp, err
}
func (a *appRoleMember) ListByIterator(ctx context.Context, req *ListAppRoleMemberReq, options ...larkcore.RequestOptionFunc) (*ListAppRoleMemberIterator, error) {
return &ListAppRoleMemberIterator{
ctx: ctx,
req: req,
listFunc: a.List,
options: options,
limit: req.Limit}, nil
}
// 新增多个数据表
//
// - 新增多个数据表
//
// - 该接口支持调用频率上限为 10 QPS
//
// - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table/batch_create
//
// - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/batchCreate_appTable.go
func (a *appTable) BatchCreate(ctx context.Context, req *BatchCreateAppTableReq, options ...larkcore.RequestOptionFunc) (*BatchCreateAppTableResp, error) {
// 发起请求
apiReq := req.apiReq
apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/tables/batch_create"
apiReq.HttpMethod = http.MethodPost
apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant}
apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...)
if err != nil {
return nil, err
}
// 反序列响应结果
resp := &BatchCreateAppTableResp{ApiResp: apiResp}
err = apiResp.JSONUnmarshalBody(resp)
if err != nil {
return nil, err
}
return resp, err
}
// 删除多个数据表
//
// - 删除多个数据表
//
// - 该接口支持调用频率上限为 10 QPS
//
// - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table/batch_delete
//
// - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/batchDelete_appTable.go
func (a *appTable) BatchDelete(ctx context.Context, req *BatchDeleteAppTableReq, options ...larkcore.RequestOptionFunc) (*BatchDeleteAppTableResp, error) {
// 发起请求
apiReq := req.apiReq
apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/tables/batch_delete"
apiReq.HttpMethod = http.MethodPost
apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant}
apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...)
if err != nil {
return nil, err
}
// 反序列响应结果
resp := &BatchDeleteAppTableResp{ApiResp: apiResp}
err = apiResp.JSONUnmarshalBody(resp)
if err != nil {
return nil, err
}
return resp, err
}
// 新增数据表
//
// - 新增一个数据表
//
// - 该接口支持调用频率上限为 10 QPS
//
// - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table/create
//
// - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/create_appTable.go
func (a *appTable) Create(ctx context.Context, req *CreateAppTableReq, options ...larkcore.RequestOptionFunc) (*CreateAppTableResp, error) {
// 发起请求
apiReq := req.apiReq
apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/tables"
apiReq.HttpMethod = http.MethodPost
apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant}
apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...)
if err != nil {
return nil, err
}
// 反序列响应结果
resp := &CreateAppTableResp{ApiResp: apiResp}
err = apiResp.JSONUnmarshalBody(resp)
if err != nil {
return nil, err
}
return resp, err
}
// 删除数据表
//
// - 删除一个数据表
//
// - 该接口支持调用频率上限为 10 QPS
//
// - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table/delete
//
// - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/delete_appTable.go
func (a *appTable) Delete(ctx context.Context, req *DeleteAppTableReq, options ...larkcore.RequestOptionFunc) (*DeleteAppTableResp, error) {
// 发起请求
apiReq := req.apiReq
apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/tables/:table_id"
apiReq.HttpMethod = http.MethodDelete
apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant}
apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...)
if err != nil {
return nil, err
}
// 反序列响应结果
resp := &DeleteAppTableResp{ApiResp: apiResp}
err = apiResp.JSONUnmarshalBody(resp)
if err != nil {
return nil, err
}
return resp, err
}
// 列出数据表
//
// - 根据 app_token,获取多维表格下的所有数据表
//
// - 该接口支持调用频率上限为 20 QPS
//
// - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table/list
//
// - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/list_appTable.go
func (a *appTable) List(ctx context.Context, req *ListAppTableReq, options ...larkcore.RequestOptionFunc) (*ListAppTableResp, error) {
// 发起请求
apiReq := req.apiReq
apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/tables"
apiReq.HttpMethod = http.MethodGet
apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant}
apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...)
if err != nil {
return nil, err
}
// 反序列响应结果
resp := &ListAppTableResp{ApiResp: apiResp}
err = apiResp.JSONUnmarshalBody(resp)
if err != nil {
return nil, err
}
return resp, err
}
func (a *appTable) ListByIterator(ctx context.Context, req *ListAppTableReq, options ...larkcore.RequestOptionFunc) (*ListAppTableIterator, error) {
return &ListAppTableIterator{
ctx: ctx,
req: req,
listFunc: a.List,
options: options,
limit: req.Limit}, nil
}
// 新增字段
//
// - 该接口用于在数据表中新增一个字段
//
// - 该接口支持调用频率上限为 10 QPS
//
// - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-field/create
//
// - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/create_appTableField.go
func (a *appTableField) Create(ctx context.Context, req *CreateAppTableFieldReq, options ...larkcore.RequestOptionFunc) (*CreateAppTableFieldResp, error) {
// 发起请求
apiReq := req.apiReq
apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/tables/:table_id/fields"
apiReq.HttpMethod = http.MethodPost
apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant}
apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...)
if err != nil {
return nil, err
}
// 反序列响应结果
resp := &CreateAppTableFieldResp{ApiResp: apiResp}
err = apiResp.JSONUnmarshalBody(resp)
if err != nil {
return nil, err
}
return resp, err
}
// 删除字段
//
// - 该接口用于在数据表中删除一个字段
//
// - 该接口支持调用频率上限为 10 QPS
//
// - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-field/delete
//
// - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/delete_appTableField.go
func (a *appTableField) Delete(ctx context.Context, req *DeleteAppTableFieldReq, options ...larkcore.RequestOptionFunc) (*DeleteAppTableFieldResp, error) {
// 发起请求
apiReq := req.apiReq
apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/tables/:table_id/fields/:field_id"
apiReq.HttpMethod = http.MethodDelete
apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant}
apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...)
if err != nil {
return nil, err
}
// 反序列响应结果
resp := &DeleteAppTableFieldResp{ApiResp: apiResp}
err = apiResp.JSONUnmarshalBody(resp)
if err != nil {
return nil, err
}
return resp, err
}
// 列出字段
//
// - 根据 app_token 和 table_id,获取数据表的所有字段
//
// - 该接口支持调用频率上限为 20 QPS
//
// - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-field/list
//
// - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/list_appTableField.go
func (a *appTableField) List(ctx context.Context, req *ListAppTableFieldReq, options ...larkcore.RequestOptionFunc) (*ListAppTableFieldResp, error) {
// 发起请求
apiReq := req.apiReq
apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/tables/:table_id/fields"
apiReq.HttpMethod = http.MethodGet
apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant}
apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...)
if err != nil {
return nil, err
}
// 反序列响应结果
resp := &ListAppTableFieldResp{ApiResp: apiResp}
err = apiResp.JSONUnmarshalBody(resp)
if err != nil {
return nil, err
}
return resp, err
}
func (a *appTableField) ListByIterator(ctx context.Context, req *ListAppTableFieldReq, options ...larkcore.RequestOptionFunc) (*ListAppTableFieldIterator, error) {
return &ListAppTableFieldIterator{
ctx: ctx,
req: req,
listFunc: a.List,
options: options,
limit: req.Limit}, nil
}
// 更新字段
//
// - 该接口用于在数据表中更新一个字段
//
// - 该接口支持调用频率上限为 10 QPS
//
// - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-field/update
//
// - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/update_appTableField.go
func (a *appTableField) Update(ctx context.Context, req *UpdateAppTableFieldReq, options ...larkcore.RequestOptionFunc) (*UpdateAppTableFieldResp, error) {
// 发起请求
apiReq := req.apiReq
apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/tables/:table_id/fields/:field_id"
apiReq.HttpMethod = http.MethodPut
apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant}
apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...)
if err != nil {
return nil, err
}
// 反序列响应结果
resp := &UpdateAppTableFieldResp{ApiResp: apiResp}
err = apiResp.JSONUnmarshalBody(resp)
if err != nil {
return nil, err
}
return resp, err
}
// 获取表单元数据
//
// - 获取表单的所有元数据项
//
// - 该接口支持调用频率上限为 20 QPS
//
// - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-form/get
//
// - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/get_appTableForm.go
func (a *appTableForm) Get(ctx context.Context, req *GetAppTableFormReq, options ...larkcore.RequestOptionFunc) (*GetAppTableFormResp, error) {
// 发起请求
apiReq := req.apiReq
apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/tables/:table_id/forms/:form_id"
apiReq.HttpMethod = http.MethodGet
apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser}
apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...)
if err != nil {
return nil, err
}
// 反序列响应结果
resp := &GetAppTableFormResp{ApiResp: apiResp}
err = apiResp.JSONUnmarshalBody(resp)
if err != nil {
return nil, err
}
return resp, err
}
// 更新表单元数据
//
// - 该接口用于更新表单中的元数据项
//
// - 该接口支持调用频率上限为 10 QPS
//
// - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-form/patch
//
// - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/patch_appTableForm.go
func (a *appTableForm) Patch(ctx context.Context, req *PatchAppTableFormReq, options ...larkcore.RequestOptionFunc) (*PatchAppTableFormResp, error) {
// 发起请求
apiReq := req.apiReq
apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/tables/:table_id/forms/:form_id"
apiReq.HttpMethod = http.MethodPatch
apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser}
apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...)
if err != nil {
return nil, err
}
// 反序列响应结果
resp := &PatchAppTableFormResp{ApiResp: apiResp}
err = apiResp.JSONUnmarshalBody(resp)
if err != nil {
return nil, err
}
return resp, err
}
// 列出表单问题
//
// - 列出表单的所有问题项
//
// - 该接口支持调用频率上限为 20 QPS
//
// - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-form-field/list
//
// - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/list_appTableFormField.go
func (a *appTableFormField) List(ctx context.Context, req *ListAppTableFormFieldReq, options ...larkcore.RequestOptionFunc) (*ListAppTableFormFieldResp, error) {
// 发起请求
apiReq := req.apiReq
apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/tables/:table_id/forms/:form_id/fields"
apiReq.HttpMethod = http.MethodGet
apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser}
apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...)
if err != nil {
return nil, err
}
// 反序列响应结果
resp := &ListAppTableFormFieldResp{ApiResp: apiResp}
err = apiResp.JSONUnmarshalBody(resp)
if err != nil {
return nil, err
}
return resp, err
}
func (a *appTableFormField) ListByIterator(ctx context.Context, req *ListAppTableFormFieldReq, options ...larkcore.RequestOptionFunc) (*ListAppTableFormFieldIterator, error) {
return &ListAppTableFormFieldIterator{
ctx: ctx,
req: req,
listFunc: a.List,
options: options,
limit: req.Limit}, nil
}
// 更新表单问题
//
// - 该接口用于更新表单中的问题项
//
// - 该接口支持调用频率上限为 10 QPS
//
// - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-form-field/patch
//
// - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/patch_appTableFormField.go
func (a *appTableFormField) Patch(ctx context.Context, req *PatchAppTableFormFieldReq, options ...larkcore.RequestOptionFunc) (*PatchAppTableFormFieldResp, error) {
// 发起请求
apiReq := req.apiReq
apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/tables/:table_id/forms/:form_id/fields/:field_id"
apiReq.HttpMethod = http.MethodPatch
apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser}
apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...)
if err != nil {
return nil, err
}
// 反序列响应结果
resp := &PatchAppTableFormFieldResp{ApiResp: apiResp}
err = apiResp.JSONUnmarshalBody(resp)
if err != nil {
return nil, err
}
return resp, err
}
// 新增多条记录
//
// - 该接口用于在数据表中新增多条记录,单次调用最多新增 500 条记录。
//
// - 该接口支持调用频率上限为 10 QPS
//
// - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-record/batch_create
//
// - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/batchCreate_appTableRecord.go
func (a *appTableRecord) BatchCreate(ctx context.Context, req *BatchCreateAppTableRecordReq, options ...larkcore.RequestOptionFunc) (*BatchCreateAppTableRecordResp, error) {
// 发起请求
apiReq := req.apiReq
apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/tables/:table_id/records/batch_create"
apiReq.HttpMethod = http.MethodPost
apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant}
apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...)
if err != nil {
return nil, err
}
// 反序列响应结果
resp := &BatchCreateAppTableRecordResp{ApiResp: apiResp}
err = apiResp.JSONUnmarshalBody(resp)
if err != nil {
return nil, err
}
return resp, err
}
// 删除多条记录
//
// - 该接口用于删除数据表中现有的多条记录,单次调用中最多删除 500 条记录。
//
// - 该接口支持调用频率上限为 10 QPS
//
// - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-record/batch_delete
//
// - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/batchDelete_appTableRecord.go
func (a *appTableRecord) BatchDelete(ctx context.Context, req *BatchDeleteAppTableRecordReq, options ...larkcore.RequestOptionFunc) (*BatchDeleteAppTableRecordResp, error) {
// 发起请求
apiReq := req.apiReq
apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/tables/:table_id/records/batch_delete"
apiReq.HttpMethod = http.MethodPost
apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant}
apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...)
if err != nil {
return nil, err
}
// 反序列响应结果
resp := &BatchDeleteAppTableRecordResp{ApiResp: apiResp}
err = apiResp.JSONUnmarshalBody(resp)
if err != nil {
return nil, err
}
return resp, err
}
// 更新多条记录
//
// - 该接口用于更新数据表中的多条记录,单次调用最多更新 500 条记录。
//
// - 该接口支持调用频率上限为 10 QPS
//
// - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-record/batch_update
//
// - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/batchUpdate_appTableRecord.go
func (a *appTableRecord) BatchUpdate(ctx context.Context, req *BatchUpdateAppTableRecordReq, options ...larkcore.RequestOptionFunc) (*BatchUpdateAppTableRecordResp, error) {
// 发起请求
apiReq := req.apiReq
apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/tables/:table_id/records/batch_update"
apiReq.HttpMethod = http.MethodPost
apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant}
apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...)
if err != nil {
return nil, err
}
// 反序列响应结果
resp := &BatchUpdateAppTableRecordResp{ApiResp: apiResp}
err = apiResp.JSONUnmarshalBody(resp)
if err != nil {
return nil, err
}
return resp, err
}
// 新增记录
//
// - 该接口用于在数据表中新增一条记录
//
// - 该接口支持调用频率上限为 10 QPS
//
// - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-record/create
//
// - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/create_appTableRecord.go
func (a *appTableRecord) Create(ctx context.Context, req *CreateAppTableRecordReq, options ...larkcore.RequestOptionFunc) (*CreateAppTableRecordResp, error) {
// 发起请求
apiReq := req.apiReq
apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/tables/:table_id/records"
apiReq.HttpMethod = http.MethodPost
apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant}
apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...)
if err != nil {
return nil, err
}
// 反序列响应结果
resp := &CreateAppTableRecordResp{ApiResp: apiResp}
err = apiResp.JSONUnmarshalBody(resp)
if err != nil {
return nil, err
}
return resp, err
}
// 删除记录
//
// - 该接口用于删除数据表中的一条记录
//
// - 该接口支持调用频率上限为 10 QPS
//
// - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-record/delete
//
// - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/delete_appTableRecord.go
func (a *appTableRecord) Delete(ctx context.Context, req *DeleteAppTableRecordReq, options ...larkcore.RequestOptionFunc) (*DeleteAppTableRecordResp, error) {
// 发起请求
apiReq := req.apiReq
apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/tables/:table_id/records/:record_id"
apiReq.HttpMethod = http.MethodDelete
apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant}
apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...)
if err != nil {
return nil, err
}
// 反序列响应结果
resp := &DeleteAppTableRecordResp{ApiResp: apiResp}
err = apiResp.JSONUnmarshalBody(resp)
if err != nil {
return nil, err
}
return resp, err
}
// 检索记录
//
// - 该接口用于根据 record_id 的值检索现有记录
//
// - 该接口支持调用频率上限为 20 QPS
//
// - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-record/get
//
// - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/get_appTableRecord.go
func (a *appTableRecord) Get(ctx context.Context, req *GetAppTableRecordReq, options ...larkcore.RequestOptionFunc) (*GetAppTableRecordResp, error) {
// 发起请求
apiReq := req.apiReq
apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/tables/:table_id/records/:record_id"
apiReq.HttpMethod = http.MethodGet
apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant}
apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...)
if err != nil {
return nil, err
}
// 反序列响应结果
resp := &GetAppTableRecordResp{ApiResp: apiResp}
err = apiResp.JSONUnmarshalBody(resp)
if err != nil {
return nil, err
}
return resp, err
}
// 列出记录
//
// - 该接口用于列出数据表中的现有记录,单次最多列出 500 行记录,支持分页获取。
//
// - 该接口支持调用频率上限为 1000 次/分钟
//
// - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-record/list
//
// - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/list_appTableRecord.go
func (a *appTableRecord) List(ctx context.Context, req *ListAppTableRecordReq, options ...larkcore.RequestOptionFunc) (*ListAppTableRecordResp, error) {
// 发起请求
apiReq := req.apiReq
apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/tables/:table_id/records"
apiReq.HttpMethod = http.MethodGet
apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant}
apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...)
if err != nil {
return nil, err
}
// 反序列响应结果
resp := &ListAppTableRecordResp{ApiResp: apiResp}
err = apiResp.JSONUnmarshalBody(resp)
if err != nil {
return nil, err
}
return resp, err
}
func (a *appTableRecord) ListByIterator(ctx context.Context, req *ListAppTableRecordReq, options ...larkcore.RequestOptionFunc) (*ListAppTableRecordIterator, error) {
return &ListAppTableRecordIterator{
ctx: ctx,
req: req,
listFunc: a.List,
options: options,
limit: req.Limit}, nil
}
// 更新记录
//
// - 该接口用于更新数据表中的一条记录
//
// - 该接口支持调用频率上限为 10 QPS
//
// - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-record/update
//
// - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/update_appTableRecord.go
func (a *appTableRecord) Update(ctx context.Context, req *UpdateAppTableRecordReq, options ...larkcore.RequestOptionFunc) (*UpdateAppTableRecordResp, error) {
// 发起请求
apiReq := req.apiReq
apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/tables/:table_id/records/:record_id"
apiReq.HttpMethod = http.MethodPut
apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant}
apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...)
if err != nil {
return nil, err
}
// 反序列响应结果
resp := &UpdateAppTableRecordResp{ApiResp: apiResp}
err = apiResp.JSONUnmarshalBody(resp)
if err != nil {
return nil, err
}
return resp, err
}
// 新增视图
//
// - 在数据表中新增一个视图
//
// - 该接口支持调用频率上限为 10 QPS
//
// - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-view/create
//
// - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/create_appTableView.go
func (a *appTableView) Create(ctx context.Context, req *CreateAppTableViewReq, options ...larkcore.RequestOptionFunc) (*CreateAppTableViewResp, error) {
// 发起请求
apiReq := req.apiReq
apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/tables/:table_id/views"
apiReq.HttpMethod = http.MethodPost
apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant}
apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...)
if err != nil {
return nil, err
}
// 反序列响应结果
resp := &CreateAppTableViewResp{ApiResp: apiResp}
err = apiResp.JSONUnmarshalBody(resp)
if err != nil {
return nil, err
}
return resp, err
}
// 删除视图
//
// - 删除数据表中的视图
//
// - 该接口支持调用频率上限为 10 QPS
//
// - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-view/delete
//
// - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/delete_appTableView.go
func (a *appTableView) Delete(ctx context.Context, req *DeleteAppTableViewReq, options ...larkcore.RequestOptionFunc) (*DeleteAppTableViewResp, error) {
// 发起请求
apiReq := req.apiReq
apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/tables/:table_id/views/:view_id"
apiReq.HttpMethod = http.MethodDelete
apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant}
apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...)
if err != nil {
return nil, err
}
// 反序列响应结果
resp := &DeleteAppTableViewResp{ApiResp: apiResp}
err = apiResp.JSONUnmarshalBody(resp)
if err != nil {
return nil, err
}
return resp, err
}
// 列出视图
//
// - 根据 app_token 和 table_id,获取数据表的所有视图
//
// - 该接口支持调用频率上限为 20 QPS
//
// - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-view/list
//
// - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/list_appTableView.go
func (a *appTableView) List(ctx context.Context, req *ListAppTableViewReq, options ...larkcore.RequestOptionFunc) (*ListAppTableViewResp, error) {
// 发起请求
apiReq := req.apiReq
apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/tables/:table_id/views"
apiReq.HttpMethod = http.MethodGet
apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant}
apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...)
if err != nil {
return nil, err
}
// 反序列响应结果
resp := &ListAppTableViewResp{ApiResp: apiResp}
err = apiResp.JSONUnmarshalBody(resp)
if err != nil {
return nil, err
}
return resp, err
}
func (a *appTableView) ListByIterator(ctx context.Context, req *ListAppTableViewReq, options ...larkcore.RequestOptionFunc) (*ListAppTableViewIterator, error) {
return &ListAppTableViewIterator{
ctx: ctx,
req: req,
listFunc: a.List,
options: options,
limit: req.Limit}, nil
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/larksuite/oapi-sdk-go.git
git@gitee.com:larksuite/oapi-sdk-go.git
larksuite
oapi-sdk-go
oapi-sdk-go
v3.0.3

搜索帮助