Overall update and improvements (#4)

This PR contains all the work done to update the App Store Connect OpenAPI specification document to its latest version, plus the implementation of the `BearerAuthMiddleware` middleware, and several other improvements to the setup of the library, the `Makefile` file, and the documentation.

Reviewed-on: #4
Co-authored-by: Javier Cicchelli <javier@rock-n-code.com>
Co-committed-by: Javier Cicchelli <javier@rock-n-code.com>
This commit was merged in pull request #4.
This commit is contained in:
2026-03-26 01:07:23 +00:00
committed by Javier Cicchelli
parent e884fcf8a4
commit 3aaf5cd7a5
19 changed files with 234816 additions and 208683 deletions
@@ -0,0 +1,38 @@
# ``Client``
The API client for performing HTTP operations against the App Store Connect API.
## Overview
The ``Client`` struct is the main entry point for interacting with the App Store Connect API. It conforms to ``APIProtocol`` and provides concrete implementations for all available API operations.
### Creating a Client
Create a ``Client`` by providing a server URL, a transport, and optionally a list of middlewares for authentication or request customization.
```swift
import ASConnectService
import OpenAPIURLSession
let client = Client(
serverURL: try Servers.server1(),
transport: URLSessionTransport(),
middlewares: [
BearerAuthMiddleware(token: yourJWTToken)
]
)
```
### Making API Calls
Each method on the ``Client`` corresponds to an HTTP endpoint defined in the App Store Connect API OpenAPI specification. Methods accept an `Input` value and return an `Output` value representing the response.
```swift
let response = try await client.appsGetCollection(.init())
```
## Topics
### Creating a Client
- ``init(serverURL:configuration:transport:middlewares:)``
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,24 @@
# ``Servers``
Server URLs defined in the OpenAPI document.
## Overview
The ``Servers`` namespace provides access to the base URLs defined in the App Store Connect API OpenAPI specification. Use these URLs when creating a ``Client`` instance.
```swift
let client = Client(
serverURL: try Servers.Server1.url(),
transport: URLSessionTransport(),
middlewares: [
BearerAuthMiddleware(token: yourJWTToken)
]
)
```
## Topics
### Server URLs
- ``Servers/Server1``
- ``Servers/server1()``
@@ -1,13 +1,51 @@
# ``ASConnectService``
<!--@START_MENU_TOKEN@-->Summary<!--@END_MENU_TOKEN@-->
A Swift client library for the App Store Connect API, generated from the official OpenAPI specification.
## Overview
<!--@START_MENU_TOKEN@-->Text<!--@END_MENU_TOKEN@-->
``ASConnectService`` provides a type-safe, Swift-native interface to Apple's App Store Connect API. This package enables developers to programmatically interact with App Store Connect services for managing apps, builds, reviews, sales reports, and more.
The library is automatically generated from the official App Store Connect API OpenAPI specification using Apple's [swift-openapi-generator](https://github.com/apple/swift-openapi-generator), ensuring complete API coverage and type safety.
### Creating a Client
Create a ``Client`` instance by providing a server URL and transport. Use ``BearerAuthMiddleware`` to authenticate requests with a JSON Web Token (JWT).
```swift
import ASConnectService
import OpenAPIURLSession
let client = Client(
serverURL: try Servers.server1(),
transport: URLSessionTransport(),
middlewares: [
BearerAuthMiddleware(token: yourJWTToken)
]
)
```
### Making API Calls
The ``Client`` conforms to ``APIProtocol``, which defines a method for every endpoint in the App Store Connect API. Each method accepts an `Input` value and returns an `Output` value with the response.
```swift
let response = try await client.appsGetCollection(.init())
```
## Topics
### <!--@START_MENU_TOKEN@-->Group<!--@END_MENU_TOKEN@-->
### API Client
- <!--@START_MENU_TOKEN@-->``Symbol``<!--@END_MENU_TOKEN@-->
- ``Client``
- ``APIProtocol``
### Authentication
- ``BearerAuthMiddleware``
### Generated Types
- ``Components``
- ``Operations``
- ``Servers``