PHPackages                             reedware/openapi-client-generator - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. reedware/openapi-client-generator

ActiveLibrary[API Development](/categories/api)

reedware/openapi-client-generator
=================================

Generates HTTP API Clients based on JSON Scheam / OpenAPI specs

015PHP

Since Apr 27Pushed 1y ago1 watchersCompare

[ Source](https://github.com/tylernathanreed/openapi-client-generator)[ Packagist](https://packagist.org/packages/reedware/openapi-client-generator)[ RSS](/packages/reedware-openapi-client-generator/feed)WikiDiscussions master Synced today

READMEChangelogDependenciesVersions (1)Used By (0)

OpenAPI Client Generator
========================

[](#openapi-client-generator)

Introduction
------------

[](#introduction)

The **OpenAPI Client Generator** is a tool intended to be used to create and maintain OpenAPI Client packages.

Installation
------------

[](#installation)

Install this package using [Composer](https://getcomposer.org/)

```
composer install reedware/openapi-client-generator --dev
```

Once installed, run the `install` command, which will ask you some basic questions to set up a configuration file and generate the project baseline.

```
vendor/bin/openapi install --generate
```

Usage
-----

[](#usage)

### Regenerate

[](#regenerate)

At any point, you may run the `generate` command to update your client from its OpenAPI Specification.

```
vendor/bin/openapi generate
```

You may also generate subsets of your client as needed:

```
vendor/bin/openapi generate readme
vendor/bin/openapi generate client
vendor/bin/openapi generate schema
vendor/bin/openapi generate schema [name]
vendor/bin/openapi generate operations
vendor/bin/openapi generate operations [name]
```

### Applying Fixes to the OpenAPI Specification

[](#applying-fixes-to-the-openapi-specification)

It's common for the OpenAPI Specification to be coming from a source that you don't own, and may include problems. You can create a `fixes` directory, which can contain explicit modifications to the OpenAPI Specification.

```
[
    {
        "type": "set",
        "path": "components.schemas.Field.properties.identifier",
        "value": {
            "type": "string"
        }
    },
    {
        "type": "merge",
        "path": "components.schemas.Issue.properties.expirationDate",
        "value": {
            "type": "string",
            "format": "date-time"
        }
    }
]
```

All `json` files in the `fixes` directory are processed. It's up to you if you want to use several smaller organized files, one large json file, or anything in between.

### Testing

[](#testing)

Every operation will have a backing test generated for it. If there are enough examples provided by the OpenAPI Specification, a running test will be generated. If there are not enough examples, a test is still generated, but it as marked as incomplete.

You can run your tests using PHPUnit:

```
vendor/bin/phpunit
```

Or use the provided composer script:

```
composer test:suite     # No Coverage
composer test:coverage  # Suite + Coverage
```

If any tests fail, this is likely due to incomplete or inaccurate examples in the OpenAPI Specification. You will need to apply fixes to the specification to get the test to pass.

###  Health Score

16

—

LowBetter than 4% of packages

Maintenance34

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity15

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/6486381?v=4)[Tyler](/maintainers/tylernathanreed)[@tylernathanreed](https://github.com/tylernathanreed)

---

Top Contributors

[![tylernathanreed](https://avatars.githubusercontent.com/u/6486381?v=4)](https://github.com/tylernathanreed "tylernathanreed (4 commits)")

### Embed Badge

![Health badge](/badges/reedware-openapi-client-generator/health.svg)

```
[![Health](https://phpackages.com/badges/reedware-openapi-client-generator/health.svg)](https://phpackages.com/packages/reedware-openapi-client-generator)
```

###  Alternatives

[exsyst/swagger

A php library to manipulate Swagger specifications

35916.4M7](/packages/exsyst-swagger)[hubspot/api-client

Hubspot API client

24016.2M20](/packages/hubspot-api-client)[pocketmine/bedrock-protocol

An implementation of the Minecraft: Bedrock Edition protocol in PHP

172445.0k15](/packages/pocketmine-bedrock-protocol)[botman/driver-telegram

Telegram driver for BotMan

93459.5k6](/packages/botman-driver-telegram)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
