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 or phpstan 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.
-
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).
-
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).
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