gitee.com/larksuite/oapi-sdk-go/v3@v3.0.3/service/bitable/v1/api.go (about) 1 // Package bitable code generated by oapi sdk gen 2 /* 3 * MIT License 4 * 5 * Copyright (c) 2022 Lark Technologies Pte. Ltd. 6 * 7 * 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: 8 * 9 * The above copyright notice and this permission notice, shall be included in all copies or substantial portions of the Software. 10 * 11 * 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. 12 */ 13 14 package larkbitable 15 16 import ( 17 "context" 18 "net/http" 19 20 "gitee.com/larksuite/oapi-sdk-go/v3/core" 21 ) 22 23 func NewService(config *larkcore.Config) *BitableService { 24 b := &BitableService{config: config} 25 b.App = &app{service: b} 26 b.AppDashboard = &appDashboard{service: b} 27 b.AppRole = &appRole{service: b} 28 b.AppRoleMember = &appRoleMember{service: b} 29 b.AppTable = &appTable{service: b} 30 b.AppTableField = &appTableField{service: b} 31 b.AppTableForm = &appTableForm{service: b} 32 b.AppTableFormField = &appTableFormField{service: b} 33 b.AppTableRecord = &appTableRecord{service: b} 34 b.AppTableView = &appTableView{service: b} 35 return b 36 } 37 38 type BitableService struct { 39 config *larkcore.Config 40 App *app // 多维表格 41 AppDashboard *appDashboard // 仪表盘 42 AppRole *appRole // 自定义角色 43 AppRoleMember *appRoleMember // 协作者 44 AppTable *appTable // 数据表 45 AppTableField *appTableField // 字段 46 AppTableForm *appTableForm // 表单 47 AppTableFormField *appTableFormField // 表单 48 AppTableRecord *appTableRecord // 记录 49 AppTableView *appTableView // 视图 50 } 51 52 type app struct { 53 service *BitableService 54 } 55 type appDashboard struct { 56 service *BitableService 57 } 58 type appRole struct { 59 service *BitableService 60 } 61 type appRoleMember struct { 62 service *BitableService 63 } 64 type appTable struct { 65 service *BitableService 66 } 67 type appTableField struct { 68 service *BitableService 69 } 70 type appTableForm struct { 71 service *BitableService 72 } 73 type appTableFormField struct { 74 service *BitableService 75 } 76 type appTableRecord struct { 77 service *BitableService 78 } 79 type appTableView struct { 80 service *BitableService 81 } 82 83 // 获取多维表格元数据 84 // 85 // - 通过 app_token 获取多维表格元数据 86 // 87 // - 该接口支持调用频率上限为 20 QPS 88 // 89 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app/get 90 // 91 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/get_app.go 92 func (a *app) Get(ctx context.Context, req *GetAppReq, options ...larkcore.RequestOptionFunc) (*GetAppResp, error) { 93 // 发起请求 94 apiReq := req.apiReq 95 apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token" 96 apiReq.HttpMethod = http.MethodGet 97 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant} 98 apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...) 99 if err != nil { 100 return nil, err 101 } 102 // 反序列响应结果 103 resp := &GetAppResp{ApiResp: apiResp} 104 err = apiResp.JSONUnmarshalBody(resp) 105 if err != nil { 106 return nil, err 107 } 108 return resp, err 109 } 110 111 // 更新多维表格元数据 112 // 113 // - 通过 app_token 更新多维表格元数据 114 // 115 // - - 飞书文档、飞书表格、知识库中的多维表格不支持开启高级权限;- 此接口非原子操作,先修改多维表格名字,后开关高级权限。可能存在部分成功的情况 116 // 117 // - 该接口支持调用频率上限为 10 QPS 118 // 119 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app/update 120 // 121 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/update_app.go 122 func (a *app) Update(ctx context.Context, req *UpdateAppReq, options ...larkcore.RequestOptionFunc) (*UpdateAppResp, error) { 123 // 发起请求 124 apiReq := req.apiReq 125 apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token" 126 apiReq.HttpMethod = http.MethodPut 127 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant} 128 apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...) 129 if err != nil { 130 return nil, err 131 } 132 // 反序列响应结果 133 resp := &UpdateAppResp{ApiResp: apiResp} 134 err = apiResp.JSONUnmarshalBody(resp) 135 if err != nil { 136 return nil, err 137 } 138 return resp, err 139 } 140 141 // 列出仪表盘 142 // 143 // - 根据 app_token,获取多维表格下的所有仪表盘 144 // 145 // - 该接口支持调用频率上限为 20 QPS 146 // 147 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-dashboard/list 148 // 149 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/list_appDashboard.go 150 func (a *appDashboard) List(ctx context.Context, req *ListAppDashboardReq, options ...larkcore.RequestOptionFunc) (*ListAppDashboardResp, error) { 151 // 发起请求 152 apiReq := req.apiReq 153 apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/dashboards" 154 apiReq.HttpMethod = http.MethodGet 155 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser} 156 apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...) 157 if err != nil { 158 return nil, err 159 } 160 // 反序列响应结果 161 resp := &ListAppDashboardResp{ApiResp: apiResp} 162 err = apiResp.JSONUnmarshalBody(resp) 163 if err != nil { 164 return nil, err 165 } 166 return resp, err 167 } 168 func (a *appDashboard) ListByIterator(ctx context.Context, req *ListAppDashboardReq, options ...larkcore.RequestOptionFunc) (*ListAppDashboardIterator, error) { 169 return &ListAppDashboardIterator{ 170 ctx: ctx, 171 req: req, 172 listFunc: a.List, 173 options: options, 174 limit: req.Limit}, nil 175 } 176 177 // 新增自定义角色 178 // 179 // - 新增自定义角色 180 // 181 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-role/create 182 // 183 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/create_appRole.go 184 func (a *appRole) Create(ctx context.Context, req *CreateAppRoleReq, options ...larkcore.RequestOptionFunc) (*CreateAppRoleResp, error) { 185 // 发起请求 186 apiReq := req.apiReq 187 apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/roles" 188 apiReq.HttpMethod = http.MethodPost 189 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant} 190 apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...) 191 if err != nil { 192 return nil, err 193 } 194 // 反序列响应结果 195 resp := &CreateAppRoleResp{ApiResp: apiResp} 196 err = apiResp.JSONUnmarshalBody(resp) 197 if err != nil { 198 return nil, err 199 } 200 return resp, err 201 } 202 203 // 删除自定义角色 204 // 205 // - 删除自定义角色 206 // 207 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-role/delete 208 // 209 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/delete_appRole.go 210 func (a *appRole) Delete(ctx context.Context, req *DeleteAppRoleReq, options ...larkcore.RequestOptionFunc) (*DeleteAppRoleResp, error) { 211 // 发起请求 212 apiReq := req.apiReq 213 apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/roles/:role_id" 214 apiReq.HttpMethod = http.MethodDelete 215 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant} 216 apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...) 217 if err != nil { 218 return nil, err 219 } 220 // 反序列响应结果 221 resp := &DeleteAppRoleResp{ApiResp: apiResp} 222 err = apiResp.JSONUnmarshalBody(resp) 223 if err != nil { 224 return nil, err 225 } 226 return resp, err 227 } 228 229 // 列出自定义角色 230 // 231 // - 列出自定义角色 232 // 233 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-role/list 234 // 235 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/list_appRole.go 236 func (a *appRole) List(ctx context.Context, req *ListAppRoleReq, options ...larkcore.RequestOptionFunc) (*ListAppRoleResp, error) { 237 // 发起请求 238 apiReq := req.apiReq 239 apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/roles" 240 apiReq.HttpMethod = http.MethodGet 241 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant} 242 apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...) 243 if err != nil { 244 return nil, err 245 } 246 // 反序列响应结果 247 resp := &ListAppRoleResp{ApiResp: apiResp} 248 err = apiResp.JSONUnmarshalBody(resp) 249 if err != nil { 250 return nil, err 251 } 252 return resp, err 253 } 254 func (a *appRole) ListByIterator(ctx context.Context, req *ListAppRoleReq, options ...larkcore.RequestOptionFunc) (*ListAppRoleIterator, error) { 255 return &ListAppRoleIterator{ 256 ctx: ctx, 257 req: req, 258 listFunc: a.List, 259 options: options, 260 limit: req.Limit}, nil 261 } 262 263 // 更新自定义角色 264 // 265 // - 更新自定义角色 266 // 267 // - 更新自定义角色是全量更新,会完全覆盖旧的自定义角色设置 268 // 269 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-role/update 270 // 271 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/update_appRole.go 272 func (a *appRole) Update(ctx context.Context, req *UpdateAppRoleReq, options ...larkcore.RequestOptionFunc) (*UpdateAppRoleResp, error) { 273 // 发起请求 274 apiReq := req.apiReq 275 apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/roles/:role_id" 276 apiReq.HttpMethod = http.MethodPut 277 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant} 278 apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...) 279 if err != nil { 280 return nil, err 281 } 282 // 反序列响应结果 283 resp := &UpdateAppRoleResp{ApiResp: apiResp} 284 err = apiResp.JSONUnmarshalBody(resp) 285 if err != nil { 286 return nil, err 287 } 288 return resp, err 289 } 290 291 // 批量新增协作者 292 // 293 // - 批量新增自定义角色的协作者 294 // 295 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-role-member/batch_create 296 // 297 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/batchCreate_appRoleMember.go 298 func (a *appRoleMember) BatchCreate(ctx context.Context, req *BatchCreateAppRoleMemberReq, options ...larkcore.RequestOptionFunc) (*BatchCreateAppRoleMemberResp, error) { 299 // 发起请求 300 apiReq := req.apiReq 301 apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/roles/:role_id/members/batch_create" 302 apiReq.HttpMethod = http.MethodPost 303 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser} 304 apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...) 305 if err != nil { 306 return nil, err 307 } 308 // 反序列响应结果 309 resp := &BatchCreateAppRoleMemberResp{ApiResp: apiResp} 310 err = apiResp.JSONUnmarshalBody(resp) 311 if err != nil { 312 return nil, err 313 } 314 return resp, err 315 } 316 317 // 批量删除协作者 318 // 319 // - 批量删除自定义角色的协作者 320 // 321 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-role-member/batch_delete 322 // 323 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/batchDelete_appRoleMember.go 324 func (a *appRoleMember) BatchDelete(ctx context.Context, req *BatchDeleteAppRoleMemberReq, options ...larkcore.RequestOptionFunc) (*BatchDeleteAppRoleMemberResp, error) { 325 // 发起请求 326 apiReq := req.apiReq 327 apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/roles/:role_id/members/batch_delete" 328 apiReq.HttpMethod = http.MethodPost 329 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser} 330 apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...) 331 if err != nil { 332 return nil, err 333 } 334 // 反序列响应结果 335 resp := &BatchDeleteAppRoleMemberResp{ApiResp: apiResp} 336 err = apiResp.JSONUnmarshalBody(resp) 337 if err != nil { 338 return nil, err 339 } 340 return resp, err 341 } 342 343 // 新增协作者 344 // 345 // - 新增自定义角色的协作者 346 // 347 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-role-member/create 348 // 349 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/create_appRoleMember.go 350 func (a *appRoleMember) Create(ctx context.Context, req *CreateAppRoleMemberReq, options ...larkcore.RequestOptionFunc) (*CreateAppRoleMemberResp, error) { 351 // 发起请求 352 apiReq := req.apiReq 353 apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/roles/:role_id/members" 354 apiReq.HttpMethod = http.MethodPost 355 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant} 356 apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...) 357 if err != nil { 358 return nil, err 359 } 360 // 反序列响应结果 361 resp := &CreateAppRoleMemberResp{ApiResp: apiResp} 362 err = apiResp.JSONUnmarshalBody(resp) 363 if err != nil { 364 return nil, err 365 } 366 return resp, err 367 } 368 369 // 删除协作者 370 // 371 // - 删除自定义角色的协作者 372 // 373 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-role-member/delete 374 // 375 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/delete_appRoleMember.go 376 func (a *appRoleMember) Delete(ctx context.Context, req *DeleteAppRoleMemberReq, options ...larkcore.RequestOptionFunc) (*DeleteAppRoleMemberResp, error) { 377 // 发起请求 378 apiReq := req.apiReq 379 apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/roles/:role_id/members/:member_id" 380 apiReq.HttpMethod = http.MethodDelete 381 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant} 382 apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...) 383 if err != nil { 384 return nil, err 385 } 386 // 反序列响应结果 387 resp := &DeleteAppRoleMemberResp{ApiResp: apiResp} 388 err = apiResp.JSONUnmarshalBody(resp) 389 if err != nil { 390 return nil, err 391 } 392 return resp, err 393 } 394 395 // 列出协作者 396 // 397 // - 列出自定义角色的协作者 398 // 399 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-role-member/list 400 // 401 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/list_appRoleMember.go 402 func (a *appRoleMember) List(ctx context.Context, req *ListAppRoleMemberReq, options ...larkcore.RequestOptionFunc) (*ListAppRoleMemberResp, error) { 403 // 发起请求 404 apiReq := req.apiReq 405 apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/roles/:role_id/members" 406 apiReq.HttpMethod = http.MethodGet 407 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant} 408 apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...) 409 if err != nil { 410 return nil, err 411 } 412 // 反序列响应结果 413 resp := &ListAppRoleMemberResp{ApiResp: apiResp} 414 err = apiResp.JSONUnmarshalBody(resp) 415 if err != nil { 416 return nil, err 417 } 418 return resp, err 419 } 420 func (a *appRoleMember) ListByIterator(ctx context.Context, req *ListAppRoleMemberReq, options ...larkcore.RequestOptionFunc) (*ListAppRoleMemberIterator, error) { 421 return &ListAppRoleMemberIterator{ 422 ctx: ctx, 423 req: req, 424 listFunc: a.List, 425 options: options, 426 limit: req.Limit}, nil 427 } 428 429 // 新增多个数据表 430 // 431 // - 新增多个数据表 432 // 433 // - 该接口支持调用频率上限为 10 QPS 434 // 435 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table/batch_create 436 // 437 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/batchCreate_appTable.go 438 func (a *appTable) BatchCreate(ctx context.Context, req *BatchCreateAppTableReq, options ...larkcore.RequestOptionFunc) (*BatchCreateAppTableResp, error) { 439 // 发起请求 440 apiReq := req.apiReq 441 apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/tables/batch_create" 442 apiReq.HttpMethod = http.MethodPost 443 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant} 444 apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...) 445 if err != nil { 446 return nil, err 447 } 448 // 反序列响应结果 449 resp := &BatchCreateAppTableResp{ApiResp: apiResp} 450 err = apiResp.JSONUnmarshalBody(resp) 451 if err != nil { 452 return nil, err 453 } 454 return resp, err 455 } 456 457 // 删除多个数据表 458 // 459 // - 删除多个数据表 460 // 461 // - 该接口支持调用频率上限为 10 QPS 462 // 463 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table/batch_delete 464 // 465 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/batchDelete_appTable.go 466 func (a *appTable) BatchDelete(ctx context.Context, req *BatchDeleteAppTableReq, options ...larkcore.RequestOptionFunc) (*BatchDeleteAppTableResp, error) { 467 // 发起请求 468 apiReq := req.apiReq 469 apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/tables/batch_delete" 470 apiReq.HttpMethod = http.MethodPost 471 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant} 472 apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...) 473 if err != nil { 474 return nil, err 475 } 476 // 反序列响应结果 477 resp := &BatchDeleteAppTableResp{ApiResp: apiResp} 478 err = apiResp.JSONUnmarshalBody(resp) 479 if err != nil { 480 return nil, err 481 } 482 return resp, err 483 } 484 485 // 新增数据表 486 // 487 // - 新增一个数据表 488 // 489 // - 该接口支持调用频率上限为 10 QPS 490 // 491 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table/create 492 // 493 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/create_appTable.go 494 func (a *appTable) Create(ctx context.Context, req *CreateAppTableReq, options ...larkcore.RequestOptionFunc) (*CreateAppTableResp, error) { 495 // 发起请求 496 apiReq := req.apiReq 497 apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/tables" 498 apiReq.HttpMethod = http.MethodPost 499 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant} 500 apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...) 501 if err != nil { 502 return nil, err 503 } 504 // 反序列响应结果 505 resp := &CreateAppTableResp{ApiResp: apiResp} 506 err = apiResp.JSONUnmarshalBody(resp) 507 if err != nil { 508 return nil, err 509 } 510 return resp, err 511 } 512 513 // 删除数据表 514 // 515 // - 删除一个数据表 516 // 517 // - 该接口支持调用频率上限为 10 QPS 518 // 519 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table/delete 520 // 521 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/delete_appTable.go 522 func (a *appTable) Delete(ctx context.Context, req *DeleteAppTableReq, options ...larkcore.RequestOptionFunc) (*DeleteAppTableResp, error) { 523 // 发起请求 524 apiReq := req.apiReq 525 apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/tables/:table_id" 526 apiReq.HttpMethod = http.MethodDelete 527 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant} 528 apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...) 529 if err != nil { 530 return nil, err 531 } 532 // 反序列响应结果 533 resp := &DeleteAppTableResp{ApiResp: apiResp} 534 err = apiResp.JSONUnmarshalBody(resp) 535 if err != nil { 536 return nil, err 537 } 538 return resp, err 539 } 540 541 // 列出数据表 542 // 543 // - 根据 app_token,获取多维表格下的所有数据表 544 // 545 // - 该接口支持调用频率上限为 20 QPS 546 // 547 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table/list 548 // 549 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/list_appTable.go 550 func (a *appTable) List(ctx context.Context, req *ListAppTableReq, options ...larkcore.RequestOptionFunc) (*ListAppTableResp, error) { 551 // 发起请求 552 apiReq := req.apiReq 553 apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/tables" 554 apiReq.HttpMethod = http.MethodGet 555 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant} 556 apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...) 557 if err != nil { 558 return nil, err 559 } 560 // 反序列响应结果 561 resp := &ListAppTableResp{ApiResp: apiResp} 562 err = apiResp.JSONUnmarshalBody(resp) 563 if err != nil { 564 return nil, err 565 } 566 return resp, err 567 } 568 func (a *appTable) ListByIterator(ctx context.Context, req *ListAppTableReq, options ...larkcore.RequestOptionFunc) (*ListAppTableIterator, error) { 569 return &ListAppTableIterator{ 570 ctx: ctx, 571 req: req, 572 listFunc: a.List, 573 options: options, 574 limit: req.Limit}, nil 575 } 576 577 // 新增字段 578 // 579 // - 该接口用于在数据表中新增一个字段 580 // 581 // - 该接口支持调用频率上限为 10 QPS 582 // 583 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-field/create 584 // 585 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/create_appTableField.go 586 func (a *appTableField) Create(ctx context.Context, req *CreateAppTableFieldReq, options ...larkcore.RequestOptionFunc) (*CreateAppTableFieldResp, error) { 587 // 发起请求 588 apiReq := req.apiReq 589 apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/tables/:table_id/fields" 590 apiReq.HttpMethod = http.MethodPost 591 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant} 592 apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...) 593 if err != nil { 594 return nil, err 595 } 596 // 反序列响应结果 597 resp := &CreateAppTableFieldResp{ApiResp: apiResp} 598 err = apiResp.JSONUnmarshalBody(resp) 599 if err != nil { 600 return nil, err 601 } 602 return resp, err 603 } 604 605 // 删除字段 606 // 607 // - 该接口用于在数据表中删除一个字段 608 // 609 // - 该接口支持调用频率上限为 10 QPS 610 // 611 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-field/delete 612 // 613 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/delete_appTableField.go 614 func (a *appTableField) Delete(ctx context.Context, req *DeleteAppTableFieldReq, options ...larkcore.RequestOptionFunc) (*DeleteAppTableFieldResp, error) { 615 // 发起请求 616 apiReq := req.apiReq 617 apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/tables/:table_id/fields/:field_id" 618 apiReq.HttpMethod = http.MethodDelete 619 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant} 620 apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...) 621 if err != nil { 622 return nil, err 623 } 624 // 反序列响应结果 625 resp := &DeleteAppTableFieldResp{ApiResp: apiResp} 626 err = apiResp.JSONUnmarshalBody(resp) 627 if err != nil { 628 return nil, err 629 } 630 return resp, err 631 } 632 633 // 列出字段 634 // 635 // - 根据 app_token 和 table_id,获取数据表的所有字段 636 // 637 // - 该接口支持调用频率上限为 20 QPS 638 // 639 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-field/list 640 // 641 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/list_appTableField.go 642 func (a *appTableField) List(ctx context.Context, req *ListAppTableFieldReq, options ...larkcore.RequestOptionFunc) (*ListAppTableFieldResp, error) { 643 // 发起请求 644 apiReq := req.apiReq 645 apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/tables/:table_id/fields" 646 apiReq.HttpMethod = http.MethodGet 647 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant} 648 apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...) 649 if err != nil { 650 return nil, err 651 } 652 // 反序列响应结果 653 resp := &ListAppTableFieldResp{ApiResp: apiResp} 654 err = apiResp.JSONUnmarshalBody(resp) 655 if err != nil { 656 return nil, err 657 } 658 return resp, err 659 } 660 func (a *appTableField) ListByIterator(ctx context.Context, req *ListAppTableFieldReq, options ...larkcore.RequestOptionFunc) (*ListAppTableFieldIterator, error) { 661 return &ListAppTableFieldIterator{ 662 ctx: ctx, 663 req: req, 664 listFunc: a.List, 665 options: options, 666 limit: req.Limit}, nil 667 } 668 669 // 更新字段 670 // 671 // - 该接口用于在数据表中更新一个字段 672 // 673 // - 该接口支持调用频率上限为 10 QPS 674 // 675 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-field/update 676 // 677 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/update_appTableField.go 678 func (a *appTableField) Update(ctx context.Context, req *UpdateAppTableFieldReq, options ...larkcore.RequestOptionFunc) (*UpdateAppTableFieldResp, error) { 679 // 发起请求 680 apiReq := req.apiReq 681 apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/tables/:table_id/fields/:field_id" 682 apiReq.HttpMethod = http.MethodPut 683 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant} 684 apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...) 685 if err != nil { 686 return nil, err 687 } 688 // 反序列响应结果 689 resp := &UpdateAppTableFieldResp{ApiResp: apiResp} 690 err = apiResp.JSONUnmarshalBody(resp) 691 if err != nil { 692 return nil, err 693 } 694 return resp, err 695 } 696 697 // 获取表单元数据 698 // 699 // - 获取表单的所有元数据项 700 // 701 // - 该接口支持调用频率上限为 20 QPS 702 // 703 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-form/get 704 // 705 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/get_appTableForm.go 706 func (a *appTableForm) Get(ctx context.Context, req *GetAppTableFormReq, options ...larkcore.RequestOptionFunc) (*GetAppTableFormResp, error) { 707 // 发起请求 708 apiReq := req.apiReq 709 apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/tables/:table_id/forms/:form_id" 710 apiReq.HttpMethod = http.MethodGet 711 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser} 712 apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...) 713 if err != nil { 714 return nil, err 715 } 716 // 反序列响应结果 717 resp := &GetAppTableFormResp{ApiResp: apiResp} 718 err = apiResp.JSONUnmarshalBody(resp) 719 if err != nil { 720 return nil, err 721 } 722 return resp, err 723 } 724 725 // 更新表单元数据 726 // 727 // - 该接口用于更新表单中的元数据项 728 // 729 // - 该接口支持调用频率上限为 10 QPS 730 // 731 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-form/patch 732 // 733 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/patch_appTableForm.go 734 func (a *appTableForm) Patch(ctx context.Context, req *PatchAppTableFormReq, options ...larkcore.RequestOptionFunc) (*PatchAppTableFormResp, error) { 735 // 发起请求 736 apiReq := req.apiReq 737 apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/tables/:table_id/forms/:form_id" 738 apiReq.HttpMethod = http.MethodPatch 739 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser} 740 apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...) 741 if err != nil { 742 return nil, err 743 } 744 // 反序列响应结果 745 resp := &PatchAppTableFormResp{ApiResp: apiResp} 746 err = apiResp.JSONUnmarshalBody(resp) 747 if err != nil { 748 return nil, err 749 } 750 return resp, err 751 } 752 753 // 列出表单问题 754 // 755 // - 列出表单的所有问题项 756 // 757 // - 该接口支持调用频率上限为 20 QPS 758 // 759 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-form-field/list 760 // 761 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/list_appTableFormField.go 762 func (a *appTableFormField) List(ctx context.Context, req *ListAppTableFormFieldReq, options ...larkcore.RequestOptionFunc) (*ListAppTableFormFieldResp, error) { 763 // 发起请求 764 apiReq := req.apiReq 765 apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/tables/:table_id/forms/:form_id/fields" 766 apiReq.HttpMethod = http.MethodGet 767 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser} 768 apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...) 769 if err != nil { 770 return nil, err 771 } 772 // 反序列响应结果 773 resp := &ListAppTableFormFieldResp{ApiResp: apiResp} 774 err = apiResp.JSONUnmarshalBody(resp) 775 if err != nil { 776 return nil, err 777 } 778 return resp, err 779 } 780 func (a *appTableFormField) ListByIterator(ctx context.Context, req *ListAppTableFormFieldReq, options ...larkcore.RequestOptionFunc) (*ListAppTableFormFieldIterator, error) { 781 return &ListAppTableFormFieldIterator{ 782 ctx: ctx, 783 req: req, 784 listFunc: a.List, 785 options: options, 786 limit: req.Limit}, nil 787 } 788 789 // 更新表单问题 790 // 791 // - 该接口用于更新表单中的问题项 792 // 793 // - 该接口支持调用频率上限为 10 QPS 794 // 795 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-form-field/patch 796 // 797 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/patch_appTableFormField.go 798 func (a *appTableFormField) Patch(ctx context.Context, req *PatchAppTableFormFieldReq, options ...larkcore.RequestOptionFunc) (*PatchAppTableFormFieldResp, error) { 799 // 发起请求 800 apiReq := req.apiReq 801 apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/tables/:table_id/forms/:form_id/fields/:field_id" 802 apiReq.HttpMethod = http.MethodPatch 803 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant, larkcore.AccessTokenTypeUser} 804 apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...) 805 if err != nil { 806 return nil, err 807 } 808 // 反序列响应结果 809 resp := &PatchAppTableFormFieldResp{ApiResp: apiResp} 810 err = apiResp.JSONUnmarshalBody(resp) 811 if err != nil { 812 return nil, err 813 } 814 return resp, err 815 } 816 817 // 新增多条记录 818 // 819 // - 该接口用于在数据表中新增多条记录,单次调用最多新增 500 条记录。 820 // 821 // - 该接口支持调用频率上限为 10 QPS 822 // 823 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-record/batch_create 824 // 825 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/batchCreate_appTableRecord.go 826 func (a *appTableRecord) BatchCreate(ctx context.Context, req *BatchCreateAppTableRecordReq, options ...larkcore.RequestOptionFunc) (*BatchCreateAppTableRecordResp, error) { 827 // 发起请求 828 apiReq := req.apiReq 829 apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/tables/:table_id/records/batch_create" 830 apiReq.HttpMethod = http.MethodPost 831 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant} 832 apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...) 833 if err != nil { 834 return nil, err 835 } 836 // 反序列响应结果 837 resp := &BatchCreateAppTableRecordResp{ApiResp: apiResp} 838 err = apiResp.JSONUnmarshalBody(resp) 839 if err != nil { 840 return nil, err 841 } 842 return resp, err 843 } 844 845 // 删除多条记录 846 // 847 // - 该接口用于删除数据表中现有的多条记录,单次调用中最多删除 500 条记录。 848 // 849 // - 该接口支持调用频率上限为 10 QPS 850 // 851 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-record/batch_delete 852 // 853 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/batchDelete_appTableRecord.go 854 func (a *appTableRecord) BatchDelete(ctx context.Context, req *BatchDeleteAppTableRecordReq, options ...larkcore.RequestOptionFunc) (*BatchDeleteAppTableRecordResp, error) { 855 // 发起请求 856 apiReq := req.apiReq 857 apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/tables/:table_id/records/batch_delete" 858 apiReq.HttpMethod = http.MethodPost 859 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant} 860 apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...) 861 if err != nil { 862 return nil, err 863 } 864 // 反序列响应结果 865 resp := &BatchDeleteAppTableRecordResp{ApiResp: apiResp} 866 err = apiResp.JSONUnmarshalBody(resp) 867 if err != nil { 868 return nil, err 869 } 870 return resp, err 871 } 872 873 // 更新多条记录 874 // 875 // - 该接口用于更新数据表中的多条记录,单次调用最多更新 500 条记录。 876 // 877 // - 该接口支持调用频率上限为 10 QPS 878 // 879 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-record/batch_update 880 // 881 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/batchUpdate_appTableRecord.go 882 func (a *appTableRecord) BatchUpdate(ctx context.Context, req *BatchUpdateAppTableRecordReq, options ...larkcore.RequestOptionFunc) (*BatchUpdateAppTableRecordResp, error) { 883 // 发起请求 884 apiReq := req.apiReq 885 apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/tables/:table_id/records/batch_update" 886 apiReq.HttpMethod = http.MethodPost 887 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant} 888 apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...) 889 if err != nil { 890 return nil, err 891 } 892 // 反序列响应结果 893 resp := &BatchUpdateAppTableRecordResp{ApiResp: apiResp} 894 err = apiResp.JSONUnmarshalBody(resp) 895 if err != nil { 896 return nil, err 897 } 898 return resp, err 899 } 900 901 // 新增记录 902 // 903 // - 该接口用于在数据表中新增一条记录 904 // 905 // - 该接口支持调用频率上限为 10 QPS 906 // 907 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-record/create 908 // 909 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/create_appTableRecord.go 910 func (a *appTableRecord) Create(ctx context.Context, req *CreateAppTableRecordReq, options ...larkcore.RequestOptionFunc) (*CreateAppTableRecordResp, error) { 911 // 发起请求 912 apiReq := req.apiReq 913 apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/tables/:table_id/records" 914 apiReq.HttpMethod = http.MethodPost 915 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant} 916 apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...) 917 if err != nil { 918 return nil, err 919 } 920 // 反序列响应结果 921 resp := &CreateAppTableRecordResp{ApiResp: apiResp} 922 err = apiResp.JSONUnmarshalBody(resp) 923 if err != nil { 924 return nil, err 925 } 926 return resp, err 927 } 928 929 // 删除记录 930 // 931 // - 该接口用于删除数据表中的一条记录 932 // 933 // - 该接口支持调用频率上限为 10 QPS 934 // 935 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-record/delete 936 // 937 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/delete_appTableRecord.go 938 func (a *appTableRecord) Delete(ctx context.Context, req *DeleteAppTableRecordReq, options ...larkcore.RequestOptionFunc) (*DeleteAppTableRecordResp, error) { 939 // 发起请求 940 apiReq := req.apiReq 941 apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/tables/:table_id/records/:record_id" 942 apiReq.HttpMethod = http.MethodDelete 943 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant} 944 apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...) 945 if err != nil { 946 return nil, err 947 } 948 // 反序列响应结果 949 resp := &DeleteAppTableRecordResp{ApiResp: apiResp} 950 err = apiResp.JSONUnmarshalBody(resp) 951 if err != nil { 952 return nil, err 953 } 954 return resp, err 955 } 956 957 // 检索记录 958 // 959 // - 该接口用于根据 record_id 的值检索现有记录 960 // 961 // - 该接口支持调用频率上限为 20 QPS 962 // 963 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-record/get 964 // 965 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/get_appTableRecord.go 966 func (a *appTableRecord) Get(ctx context.Context, req *GetAppTableRecordReq, options ...larkcore.RequestOptionFunc) (*GetAppTableRecordResp, error) { 967 // 发起请求 968 apiReq := req.apiReq 969 apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/tables/:table_id/records/:record_id" 970 apiReq.HttpMethod = http.MethodGet 971 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant} 972 apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...) 973 if err != nil { 974 return nil, err 975 } 976 // 反序列响应结果 977 resp := &GetAppTableRecordResp{ApiResp: apiResp} 978 err = apiResp.JSONUnmarshalBody(resp) 979 if err != nil { 980 return nil, err 981 } 982 return resp, err 983 } 984 985 // 列出记录 986 // 987 // - 该接口用于列出数据表中的现有记录,单次最多列出 500 行记录,支持分页获取。 988 // 989 // - 该接口支持调用频率上限为 1000 次/分钟 990 // 991 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-record/list 992 // 993 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/list_appTableRecord.go 994 func (a *appTableRecord) List(ctx context.Context, req *ListAppTableRecordReq, options ...larkcore.RequestOptionFunc) (*ListAppTableRecordResp, error) { 995 // 发起请求 996 apiReq := req.apiReq 997 apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/tables/:table_id/records" 998 apiReq.HttpMethod = http.MethodGet 999 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant} 1000 apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...) 1001 if err != nil { 1002 return nil, err 1003 } 1004 // 反序列响应结果 1005 resp := &ListAppTableRecordResp{ApiResp: apiResp} 1006 err = apiResp.JSONUnmarshalBody(resp) 1007 if err != nil { 1008 return nil, err 1009 } 1010 return resp, err 1011 } 1012 func (a *appTableRecord) ListByIterator(ctx context.Context, req *ListAppTableRecordReq, options ...larkcore.RequestOptionFunc) (*ListAppTableRecordIterator, error) { 1013 return &ListAppTableRecordIterator{ 1014 ctx: ctx, 1015 req: req, 1016 listFunc: a.List, 1017 options: options, 1018 limit: req.Limit}, nil 1019 } 1020 1021 // 更新记录 1022 // 1023 // - 该接口用于更新数据表中的一条记录 1024 // 1025 // - 该接口支持调用频率上限为 10 QPS 1026 // 1027 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-record/update 1028 // 1029 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/update_appTableRecord.go 1030 func (a *appTableRecord) Update(ctx context.Context, req *UpdateAppTableRecordReq, options ...larkcore.RequestOptionFunc) (*UpdateAppTableRecordResp, error) { 1031 // 发起请求 1032 apiReq := req.apiReq 1033 apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/tables/:table_id/records/:record_id" 1034 apiReq.HttpMethod = http.MethodPut 1035 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant} 1036 apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...) 1037 if err != nil { 1038 return nil, err 1039 } 1040 // 反序列响应结果 1041 resp := &UpdateAppTableRecordResp{ApiResp: apiResp} 1042 err = apiResp.JSONUnmarshalBody(resp) 1043 if err != nil { 1044 return nil, err 1045 } 1046 return resp, err 1047 } 1048 1049 // 新增视图 1050 // 1051 // - 在数据表中新增一个视图 1052 // 1053 // - 该接口支持调用频率上限为 10 QPS 1054 // 1055 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-view/create 1056 // 1057 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/create_appTableView.go 1058 func (a *appTableView) Create(ctx context.Context, req *CreateAppTableViewReq, options ...larkcore.RequestOptionFunc) (*CreateAppTableViewResp, error) { 1059 // 发起请求 1060 apiReq := req.apiReq 1061 apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/tables/:table_id/views" 1062 apiReq.HttpMethod = http.MethodPost 1063 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant} 1064 apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...) 1065 if err != nil { 1066 return nil, err 1067 } 1068 // 反序列响应结果 1069 resp := &CreateAppTableViewResp{ApiResp: apiResp} 1070 err = apiResp.JSONUnmarshalBody(resp) 1071 if err != nil { 1072 return nil, err 1073 } 1074 return resp, err 1075 } 1076 1077 // 删除视图 1078 // 1079 // - 删除数据表中的视图 1080 // 1081 // - 该接口支持调用频率上限为 10 QPS 1082 // 1083 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-view/delete 1084 // 1085 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/delete_appTableView.go 1086 func (a *appTableView) Delete(ctx context.Context, req *DeleteAppTableViewReq, options ...larkcore.RequestOptionFunc) (*DeleteAppTableViewResp, error) { 1087 // 发起请求 1088 apiReq := req.apiReq 1089 apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/tables/:table_id/views/:view_id" 1090 apiReq.HttpMethod = http.MethodDelete 1091 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant} 1092 apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...) 1093 if err != nil { 1094 return nil, err 1095 } 1096 // 反序列响应结果 1097 resp := &DeleteAppTableViewResp{ApiResp: apiResp} 1098 err = apiResp.JSONUnmarshalBody(resp) 1099 if err != nil { 1100 return nil, err 1101 } 1102 return resp, err 1103 } 1104 1105 // 列出视图 1106 // 1107 // - 根据 app_token 和 table_id,获取数据表的所有视图 1108 // 1109 // - 该接口支持调用频率上限为 20 QPS 1110 // 1111 // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/bitable-v1/app-table-view/list 1112 // 1113 // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/bitablev1/list_appTableView.go 1114 func (a *appTableView) List(ctx context.Context, req *ListAppTableViewReq, options ...larkcore.RequestOptionFunc) (*ListAppTableViewResp, error) { 1115 // 发起请求 1116 apiReq := req.apiReq 1117 apiReq.ApiPath = "/open-apis/bitable/v1/apps/:app_token/tables/:table_id/views" 1118 apiReq.HttpMethod = http.MethodGet 1119 apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeUser, larkcore.AccessTokenTypeTenant} 1120 apiResp, err := larkcore.Request(ctx, apiReq, a.service.config, options...) 1121 if err != nil { 1122 return nil, err 1123 } 1124 // 反序列响应结果 1125 resp := &ListAppTableViewResp{ApiResp: apiResp} 1126 err = apiResp.JSONUnmarshalBody(resp) 1127 if err != nil { 1128 return nil, err 1129 } 1130 return resp, err 1131 } 1132 func (a *appTableView) ListByIterator(ctx context.Context, req *ListAppTableViewReq, options ...larkcore.RequestOptionFunc) (*ListAppTableViewIterator, error) { 1133 return &ListAppTableViewIterator{ 1134 ctx: ctx, 1135 req: req, 1136 listFunc: a.List, 1137 options: options, 1138 limit: req.Limit}, nil 1139 }