OCOBO estructura de módulo
Objetivo
Crear módulos consistentes (misma estructura y wiring de rutas) y evitar inconsistencias de prefijos/namespaces.
Datos que se deben definir siempre
- •slug del módulo (para URL/prefijo): ejemplo
control-acceso,ventanilla,calidad. - •archivo de rutas: ejemplo
routes/controlAcceso.php. - •namespace de controladores/requests/modelos:
App\Http\Controllers\<Modulo>\, etc.
Workflow: crear módulo nuevo
- •Crear
routes/<modulo>.php. - •Registrar en
app/Providers/RouteServiceProvider.phpcon:
php
Route::middleware('api')
->prefix('api/<modulo>')
->group(base_path('routes/<modulo>.php'));
- •Crear directorios:
- •
app/Http/Controllers/<Modulo>/ - •
app/Http/Requests/<Modulo>/ - •(si aplica)
app/Models/<Modulo>/
- •
Workflow: agregar recurso al módulo
- •Rutas:
- •
auth:sanctumsi es privado - •rutas específicas antes de
apiResource
- •
- •Controller:
- •
use ApiResponseTrait - •
try/catchy transacción si aplica
- •
- •Requests:
- •
rules/messages/attributesen español - •
failedValidation()con 422 uniforme cuando el módulo lo requiera
- •