API resources
Pre stavbu API na správy alebo Inertia/SPA backendu sú pripravené JSON resources. Vystavujú len bezpečné polia, zobrazujú stav prečítania a údaje o odpovedi a korektne sa správajú, aj keď vzťahy nie sú prednačítané:
use RoundlyConsulting\Messages\Facades\Messages;
use RoundlyConsulting\Messages\Http\Resources\MessageResource;
use RoundlyConsulting\Messages\Http\Resources\ParticipantResource;
use RoundlyConsulting\Messages\Http\Resources\ThreadResource;
return ThreadResource::collection(Messages::inboxFor($request->user()));
return MessageResource::collection(Messages::thread($thread)->messages());Polia
| Resource | Polia |
|---|---|
ThreadResource | id, name, is_direct, is_public, is_archived, last_activity_at, unread_count (ak je k dispozícii, napr. zo schránky), latest_message a participants (ak sú načítané). |
MessageResource | id, thread_id, type, body (po zrušení odoslania null), preview, is_deleted, sender (participateAs(), ak je načítaný), reply_to (id, excerpt, sender_id, sender_type), sent_at, edited_at (len textové správy). |
ParticipantResource | id, role, read_at, joined_at, participant (participateAs(), alebo id + type, ak model rozhranie neimplementuje). |
ThreadResource spojte s Messages::inboxFor() — schránka už prednačíta všetko, čo resource číta, vrátane unread_count. Oba stránkovače sa riadia parametrom ?page= z požiadavky, takže meta.current_page aj links.next v obálke zostávajú zosúladené pre klienta s nekonečným posúvaním.
Prispôsobenie
Publikujte upraviteľné kópie — ThreadResource, MessageResource a ParticipantResource v App\Http\Resources\Messages (app/Http/Resources/Messages):
php artisan vendor:publish --tag="messages-resources"Kým ich neupravíte, vykresľujú presne to isté ako resources balíka; vo svojich controlleroch ich používajte namiesto tried balíka. ThreadResource vykresľuje poslednú správu aj účastníkov tiež cez vaše kópie.
Prejavte lásku k open source
Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.
Ďalšie spôsoby podpory vrátane kryptomienOdoslaním daru súhlasíte s našimi podmienkami prijímania darov.
Chcete to zabudovať do svojho produktu?
Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.