Some checks are pending
Telegram Mini App Shop Builder / Compute version metadata (push) Waiting to run
Telegram Mini App Shop Builder / Run Frontend tests (push) Waiting to run
Telegram Mini App Shop Builder / Run Backend tests (push) Waiting to run
Telegram Mini App Shop Builder / Run PHP_CodeSniffer (push) Waiting to run
Telegram Mini App Shop Builder / Build module. (push) Blocked by required conditions
Telegram Mini App Shop Builder / release (push) Blocked by required conditions
3.1 KiB
3.1 KiB
Prompts for API generation
Creating a new API endpoint
Create a new API endpoint [ENDPOINT_NAME] for [DESCRIPTION]:
1. Handler in [HANDLER_PATH]:
- Method handle() accepts Request
- Validate input data
- Use a Service for business logic
- Return JsonResponse with correct structure
- Handle errors with logging
2. Service in [SERVICE_PATH]:
- Business logic
- Work with Model
- Data validation
- Exception handling
3. Model in [MODEL_PATH] (if needed):
- Methods for working with the database
- Use Query Builder
- Proper method typing
4. Route in routes.php:
- Add a route with the correct name
5. Migration (if a new table is needed):
- Create a migration in database/migrations/
- Use fixed acmeshop_ prefix for the table
- Add indexes where necessary
Follow the project MVC-L architecture and reuse existing patterns.
Creating a CRUD API
Create a full CRUD API for entity [ENTITY_NAME]:
1. Handler with methods:
- list() – list with pagination and filtering
- get() – fetch a single record
- create() – create
- update() – update
- delete() – delete
2. Service with business logic for all operations
3. Model with methods:
- findAll() – list
- findById() – by ID
- create() – create
- update() – update
- delete() – delete
4. DTO for data validation
5. Migration for table [TABLE_NAME]
6. Routes for all endpoints
Use server-side pagination, filtering, and sorting for list().
Creating an Admin API endpoint
Create an Admin API endpoint [ENDPOINT_NAME] in bastion/Handlers/:
1. Handler in bastion/Handlers/[HANDLER_NAME].php:
- Use Request to read parameters
- Validate data
- Call a Service for business logic
- Return JsonResponse with structure { data: { data: [...], totalRecords: ... } }
- Handle errors
2. Service in bastion/Services/ (if needed):
- Admin-specific business logic
- Work with Models
3. Route in bastion/routes.php
4. Frontend component (if UI is needed):
- Vue component in frontend/admin/src/views/
- Use PrimeVue components
- Server-side pagination/filtering
- Error handling with toast notifications
Follow existing project patterns.
Creating a Frontend API client
Create a function for working with API endpoint [ENDPOINT_NAME]:
1. In frontend/[admin|spa]/src/utils/http.js:
- api[Method] function to call the endpoint
- Proper error handling
- Return a structured response
2. Usage:
- Import in components
- Handle loading states
- Show toast notifications on errors
Follow existing patterns in http.js.
Creating a migration
Create a migration for table [TABLE_NAME]:
1. File: database/migrations/[TIMESTAMP]_[DESCRIPTION].php
2. Use fixed acmeshop_ prefix for the table
3. Add all required fields with correct types
4. Add indexes for frequently used fields
5. Use utf8mb4_unicode_ci collation
6. Use InnoDB engine
7. Add created_at and updated_at timestamps
8. Do not create foreign keys (use indexes only)
Follow the structure of existing migrations.