ajoute l'API publique /api/v1 (bloc B, premier chantier)
Catalogue en lecture seule (labs, banque de quiz officielle, cours) - choix d'Adam pour la première version, zéro donnée d'élève. Laravel Sanctum, un jeton Bearer par développeur créé depuis /jetons-api (un prof), portée catalogue:lire seulement. Quota par jeton (pas par compte ni par IP) dans Redis via un limiteur nommé, 60 requêtes/minute. Documentation : spécification OpenAPI 3.0 et page publique /api/docs. Désactive /sanctum/csrf-cookie (config/sanctum.php) : l'API est en jeton Bearer seulement, jamais en cookie de SPA. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
parent
3b961209f5
commit
ecf3dfb21d
22 changed files with 874 additions and 2 deletions
24
portail/app/Http/Controllers/Api/V1/CoursController.php
Normal file
24
portail/app/Http/Controllers/Api/V1/CoursController.php
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Api\V1;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Resources\Api\V1\CoursResource;
|
||||
use App\Models\Cours;
|
||||
use Illuminate\Http\Resources\Json\AnonymousResourceCollection;
|
||||
|
||||
/**
|
||||
* API publique v1 (bloc B) : catalogue des cours, en lecture seule.
|
||||
*/
|
||||
class CoursController extends Controller
|
||||
{
|
||||
public function index(): AnonymousResourceCollection
|
||||
{
|
||||
return CoursResource::collection(Cours::orderBy('identifiant')->get());
|
||||
}
|
||||
|
||||
public function show(Cours $cours): CoursResource
|
||||
{
|
||||
return new CoursResource($cours);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue