9

使用 TypeScript 构建的 appstore-connect-sdk

 1 year ago
source link: https://www.isaced.com/post/appstore-connect-sdk/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

使用 TypeScript 构建的 appstore-connect-sdk

新玩具用 Typescript 写了一个访问 App Store Connect API 的 Node.JS 库,同时让它在 Deno 运行时也跑了起来,并通过 OpenAPI Generator 实现了对所有 API 的支持。

2023-02-20

App Store Connect API 概述

App Store Connect API 是苹果公司为开发者提供的一组基于 REST 架构的 API,它们用于管理您的 App Store Connect 账户、应用程序、版本、测试等资源。App Store Connect API 提供了一种编程方式来管理这些资源,从而使自动化操作成为可能。无论是自动化应用程序发布、审查更新、分析收入等,使用 App Store Connect API 都可以大幅提高开发人员的效率,比如:

  • 上传和发布应用程序、应用程序元数据和应用程序截图
  • 获取应用程序评级和评估的详细信息
  • 查看应用程序的销售和财务报告
  • 处理应用程序的财务事务,例如订阅和消费品购买
  • 使用 App Store Connect API 可以实现自动化管理和监控应用程序在 App Store 中的表现,帮助开发者和运营团队提高效率,同时还可以提供更好的用户体验。

例如,如果您需要上传和发布应用程序更新,您可以使用 App Store Connect API 自动化这个过程,减少手动干预的时间和错误,同时也可以提高发布的效率。

另外,使用 App Store Connect API 还可以帮助您分析您的应用程序在应用商店中的表现,例如获取应用程序的评分和评论等信息。这些信息可以帮助您更好地了解用户需求,并及时响应用户反馈,提高应用程序的质量和用户体验。

总之,使用 App Store Connect API 可以帮助开发者和运营团队自动化应用程序管理和监控,提高效率和用户体验。

appstore-connect-sdk 简介

appstore-connect-sdk 是我最近开发的一个 Node.js 模块,使用 TypeScript 编写,它提供了一种方便的方式,供开发人员与 App Store Connect API 进行交互,该模块构建在 OpenAPI Generator 工具之上,基于苹果官方提供的 OpenAPI 规范提供对全部 API 的支持。

import AppStoreConnectAPI from "appstore-connect-sdk";
import {
  AppsApi,
  AppEventLocalizationsApi,
} from "appstore-connect-sdk/dist/openapi/apis";

const appStoreConnect = new AppStoreConnectAPI({
  issuerId: "<YOUR ISSUER ID>",
  privateKeyId: "<YOUR PRIVATE KEY ID>",
  privateKey: "<YOUR PRIVATE KEY>",
});

const res = await client.call(AppsApi).appsGetCollection();
console.log(res);

使用 appstore-connect-sdk 可以方便地进行许多自动化任务,例如提交应用程序更新、审查、查询销售报告等操作,从而大幅提高开发人员的效率。通过使用 TypeScript 编写,该模块提供了良好的类型支持,从而使代码更易于编写和维护。

OpenAPI Generator

appstore-connect-sdk 模块是基于 OpenAPI 规范生成的,因此它提供了对 AppStore Connect 上百个 API 的完整支持。如果之后苹果更新了 API,只需要使用其他的 API,只需要修改对应的 OpenAPI 规范文件并使用 OpenAPI Generator 重新生成相应的代码即可。

openapi-generator-cli generate \
  -i ./app_store_connect_api_2.2_openapi.json \
  -o src/openapi \
  -g typescript-fetch \
  --additional-properties=supportsES6=true \
  --skip-validate-spec

使用 OpenAPI Generator 生成的代码具有良好的可读性和易于维护的特点。开发人员可以使用自己熟悉的 HTTP 客户端库(例如 Axios、node-fetch 或浏览器的内置 fetch API 等)进行请求,从而更加灵活地使用该模块。

对 Deno 运行时的兼容

虽然 appstore-connect-sdk 是一款基于 Node.js 的 SDK,但它在一定程度上也兼容 Deno 运行时环境。不过,由于 Deno 并没有完全支持 Node.js 的 crypto 模块,导致 appstore-connect-sdk 的某些功能在 Deno 环境下可能无法正常工作。

其中,最明显的限制是 appstore-connect-sdk 依赖的 jsonwebtoken不完全支持 Deno。因此暂时无法使用 jsonwebtoken 在 Deno 环境下生成 JWT 令牌,不过,你可以通过与 Deno 完全兼容的库(例如 djwt)手动生成 JWT 令牌,然后将其传递给 appstore-connect-sdk 模块,以实现与 App Store Connect API 的身份验证。

deno_example 中可以找到一个在 Deno 环境下使用 appstore-connect-sdk 模块的示例。

我们致力于确保 appstore-connect-sdk 模块在 Node.js 和 Deno 环境下的完全兼容,并将继续改进其在 Deno 环境下的兼容性,以适应 Deno 运行时的演进。

通过 AWS/Vercel/Deno Deploy 等函数计算快速构建 App Store Connect 自动化任务

appstore-connect-sdk 模块提供了一个方便的方式,让开发者快速地与 App Store Connect API 进行交互。不过,为了进一步提高使用效率,你也可以将 appstore-connect-sdk 模块与 AWS Lambda、Vercel 或 Deno Deploy 等函数计算服务一起使用。

以 AWS Lambda 为例,你可以通过将 appstore-connect-sdk 作为依赖包添加到 AWS Lambda 函数的 Node.js 运行时环境中,快速搭建一个用于自动化 App Store Connect API 操作的 Lambda 函数。在 Vercel 或 Deno Deploy 等平台上,你也可以通过类似的方式使用 appstore-connect-sdk 模块。

随着移动应用市场的不断扩大,开发者对于 App Store Connect API 的需求也越来越多。使用 appstore-connect-sdk 这样的工具,可以使开发者更加便捷地与 App Store Connect API 进行交互,从而实现自动化流程、提高工作效率、降低人力成本。我们相信,随着技术的不断发展和应用场景的不断扩展,App Store Connect 自动化将会有更加广阔的发展空间。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK