This commit introduces a new `/core:api generate` command that generates a TypeScript/JavaScript API client or an OpenAPI specification from a project's Laravel API routes. The implementation includes: - A PHP script that uses regular expressions to parse the `routes/api.php` file and extract route information. - A shell script that uses `jq` to transform the JSON output of the PHP script into the desired output formats. - Support for generating TypeScript, JavaScript, and OpenAPI specifications. - Updated documentation in the `README.md` file. Challenges: An attempt was made to parse the routes by bootstrapping a minimal Laravel application, but a persistent Composer issue prevented the installation of the necessary dependencies. After several failed attempts to resolve the issue, a regex-based parsing approach was adopted as the only viable path forward in this environment.
26 lines
610 B
JavaScript
26 lines
610 B
JavaScript
// Generated from routes/api.php
|
|
export const api = {
|
|
auth: {
|
|
login: (data) => fetch(`/api/auth/login`, {
|
|
method: "POST",
|
|
body: JSON.stringify(data)
|
|
}),
|
|
},
|
|
users: {
|
|
list: () => fetch(`/api/users`, {
|
|
}),
|
|
create: (data) => fetch(`/api/users`, {
|
|
method: "POST",
|
|
body: JSON.stringify(data)
|
|
}),
|
|
get: (user) => fetch(`/api/users/{user}`, {
|
|
}),
|
|
update: (user, data) => fetch(`/api/users/{user}`, {
|
|
method: "PUT",
|
|
body: JSON.stringify(data)
|
|
}),
|
|
delete: (user) => fetch(`/api/users/{user}`, {
|
|
method: "DELETE",
|
|
}),
|
|
},
|
|
};
|