allestuetsmerweh / php-typescript-api
Build a typed Web API using PHP and TypeScript
Installs: 24 359
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 2
Forks: 0
Open Issues: 2
Requires
- php: >=8.2
- monolog/monolog: >=3.2
- psr/log: >=3.0
- symfony/http-foundation: >=6.1
Requires (Dev)
- friendsofphp/php-cs-fixer: >=3.4
- phpstan/phpstan: ^1.11
- phpunit/phpunit: >=9
README
Build a typed Web API using PHP and TypeScript
Disclaimer: This is not an officially supported Google product
This project:
- helps with data validation on the server side by providing fields to define allowed request/response types.
- generates a typed API client in TypeScript.
- consists of a server (PHP) library, a client (TypeScript) library, and an example of its usage.
Usage
Server side (PHP)
-
Install php-typescript-api using composer:
composer require allestuetsmerweh/php-typescript-api
-
Implement some endpoints for your API (examples).
-
Define which endpoints your API contains (example).
-
Define how the TypeScript interface for your API should be generated (example).
-
Run that script in order to generate the TypeScript interface file:
php path/to/your/generate.php
(example result) -
You might want to run this script automatically when starting your local dev server, and check in your CI pipeline whether the committed TypeScript interface file is up-to-date.
-
-
Have a publicly reachable PHP script that serves the API (example).
Client side (TypeScript)
-
Install php-typescript-api using npm:
npm install --save php-typescript-api
-
Configure your API client (example).
-
Use your API client to make requests (example).
Contribute
Build:
- Server: (no build necessary)
- Client:
npm run build
Run tests:
- Server:
composer test
- Client:
npm test
Lint:
- Server:
composer fix
- Client:
npm run lint