Opinionated API Skeleton creat cu Laravel
Configurarea proiectului
Asta va:
- Creati proiectul
- Instalati dependenciesr
- Copiati .env.example in .env in radacina proiectului;
- Generati APP_KEY
- Generati JWT_SECRET
- Configureaza Git Hooks pentru proiect;
Actualizati fisierul .env dupa cum este necesar;
Rulati migratiile si semintele:
Configurati gazda virtuala locala. Dupa aceea, vizitati adresa URL a gazdei si veti vedea un raspuns JSON ca mai jos:
Arhitectura aplicatiilor
In interiorul folderului aplicatiei vor locui doar alte foldere, nu sunt permise fisiere in radacina. Arhitectura de baza este compusa din patru foldere principale:
Core: Fisierele de arhitectura de baza sunt plasate aici:
- Handler de exceptii si exceptii personalizate;
- Fisiere kernel;
- Furnizori;
- Middlewares;
- Fisiere de baza precum BaseController si BaseRepository;
Modele: Toate clasele de modele ale aplicatiei sunt plasate aici, dar nu sunt permise clase in radacina directorului. Toate modelele ar trebui introduse intr-un spatiu de nume in functie de scopul acestuia, pe langa faptul ca exista alte doua foldere:
- Trasaturi pentru trasaturi specifice modelului;
- Relatii pentru clase de relatii personalizate;
Depozite: toate clasele de depozitare ale aplicatiilor sunt plasate aici, dar nu sunt permise clase in radacina directorului. Toate depozitele ar trebui sa fie introduse intr-un spatiu de nume in functie de scopul acestuia, in afara de aceasta, exista un folder Trasaturi pentru trasaturi specifice depozitului. Daca creati un depozit pentru o anumita clasa Model, utilizati acelasi spatiu de nume pe care l-ati dat clasei Model, de exemplu Depozitele Models \ Auth \ User TREBUIE sa fie Repozitorii \ Auth \ UserRepository. PUNETI INTOTDEAUNA sufixul Repository. Toate depozitele TREBUIE sa extinda LarAPI \ Core \ Repositories \ BaseRepository
Module: toate modulele aplicatiei sunt plasate aici, de exemplu, Auth Module . Nu sunt permise clase in radacina directorului.
Modul comun: acesta este un folder de module (toate folderele de module TREBUIE sa aiba aceeasi structura de fisiere si fisiere). Acest modul a fost creat pentru a avea DOAR clase de scopuri comune si generale:
- Comenzi: fisiere de comanda pentru acest modul;
- Controlere: fisiere de control pentru acest modul. NU folositi numele in forma de plural si puneti intotdeauna sufixul Controler. Exemplu: UserController, ProductController. Toate controlerele TREBUIE sa extinda LarAPI \ Core \ Http \ BaseController;
- Evenimente: Fisiere de evenimente pentru acest modul. Incercati sa utilizati verbe pentru nume si puneti intotdeauna sufixul Eveniment. Exemplu: ActivateUserEvent;
- Ascultatori: fisiere de ascultare pentru acest modul. Incercati sa utilizati substantive pentru nume si puneti INTOTDEAUNA sufixul Ascultator. Exemplu: pentru ActivateUserEvent utilizati UserActivatedListener;
- Solicitari: fisiere de solicitare personalizate pentru acest modul.
videosgay viejas masturvandose
jovenes zorras viejas con jóvenes
porno gay cerdo me corro en su boca sin avisar
comic porno en español follando en el convento
videos porno morbosos chicas altas follando
trio en la playa scat lesbianas
cerdas com gratis jovenes españolas follando
comicxxx se follan a su mujer
porno argumento xxx incesto real
coños calientes filme porno vechi
hentai castellano paja a desconocido
chica se masturba porno forzado
porno español dinero orgias amateur
tetonas delgadas torbe videos completos
gorditas tetonas asiaticasxxx
incesto real casero tetas espectaculares
pilladas desnudas incesto clasico
videos porno corridas internas pillados follando infraganti
creampie española porno casero en españa
porno español jovencitas videos pornos de españolasIncercati sa utilizati verbe pentru nume si puneti intotdeauna sufixul Solicitare. Exemplu: ActivateUserRequest. Toate cererile TREBUIE sa extinda LarAPI \ Core \ Http \ BaseRequest;
- Raspunsuri: Fisiere de raspuns personalizate pentru acest modul. Incercati sa utilizati substantive pentru nume si puneti intotdeauna sufixul Raspuns. Exemplu: UserActivatedResponse;
- Rutare: Trageti fisierele pentru acest modul. Fiecare fisier este o versiune a API-ului. Urmati formatul: v1.php, v2.php, etc;
- Servicii: Fisiere de service pentru acest modul. PUNETI MEREU sufixul Service;
- Suport: fisiere de ajutor pentru acest modul;
- Trasaturi: fisiere de trasaturi pentru acest modul;
Cand creati un nou modul in folderul aplicatie / Module, adaugati numele modulului in fisierul config / modules.php. Acest fisier de configurare este, de asemenea, utilizat pentru a activa si dezactiva modulele din API-ul dvs. Modulele enumerate acolo vor fi cele activate.
Crearea comenzilor programate
Toate comenzile care vor fi programate pe Console / Kernel TREBUIE sa se extinda de la LarAPI \ Core \ Console \ ApiTaskCommand;
Cand planificati comenzile, toate comenzile TREBUIE sa fie programate cu -> runInBackground (); metoda;
Caracteristici
Documentatie API
LarAPI ofera documentatia API pentru API-ul dvs. folosind Swagger . Puteti verifica documentele API accesand: HOST_URL / swagger.
Aut
LarAPI va ofera autentificare JWT , setari de utilizator si roluri de utilizator imediat. Puteti verifica punctele finale de autentificare implicite din documentele Swagger din API .
Controlere
Clasa LarAPI \ Core \ Http \ BaseController ofera trei metode de ajutor pentru returnarea datelor din API:
-
apiSimpleSuccessResponse (int $ code = Response :: HTTP_CREATED): JsonResponse
-
apiSuccessResponse ($ data, int $ code = Response :: HTTP_OK): JsonResponse
-
apiErrorResponse (sir $ mesaj, Aruncare $ exceptie = nul, $ cod = Raspuns :: HTTP_INTERNAL_SERVER_ERROR): JsonResponse
DTO-uri
LarAPI va ofera doua clase DTO generice care pot fi utile pentru solicitarile de tabele de date. Verificati LarAPI \ Modules \ Common \ Support \ DTOs \ CommonTableDTO si LarAPI \ Modules \ Common \ Support \ DTOs \ DateRangeDTO
Exceptii
LarAPI ofera un Handler de exceptii configurat care va returna doar raspunsurile JSON si, de asemenea, o interfata de baza pentru a identifica exceptiile personalizate care vor fi gestionate de handlerul de exceptii personalizat furnizat. De asemenea, ofera un exemplu de exceptie personalizat.
Formatter
Clasa LarAPI \ Modules \ Common \ Support \ Formatter ofera o multime de functii pentru formatarea datelor si a constantelor de ajutor pentru a le utiliza in codul dvs.
Git Hooks
Proiectul are cateva Git Hooks pentru a actualiza documentatia API folosind Swagger , pentru a scapa codul PHP folosind PHP-CS-FIXER si pentru a rula testele folosind PHPUnit .
Traseul de verificare a sanatatii
LarAPI ofera un traseu de verificare a starii de sanatate daca trebuie sa verificati daca API-ul dvs. este activat .
Managementul modulului
Puteti utiliza urmatoarea comanda pentru a crea un nou modul in API-ul dvs.:
Folosind fisierul config / modules.php puteti activa si dezactiva modulele API-ului dvs.
Cereri
LarAPI va ofera doua clase de solicitare generice care pot fi utile pentru solicitarile de tabele de date. Verificati LarAPI \ Modules \ Common \ Requests \ CommonTableRequest si LarAPI \ Modules \ Common \ Requests \ DateRangeRequest
Depozite
Clasa LarAPI \ Core \ Repositories \ BaseRepository ofera o multime de functii de scop generic, deci nu este nevoie sa pierdeti timp creand functii pentru interogari simple:
Manager de comenzi programate
LarAPI va ofera un manager personalizat pentru comenzile programate, care va vor ajuta sa preveniti suprapunerile si, de asemenea, va va facilita depanarea comenzilor programate. Verificati clasele: LarAPI \ Core \ Console \ ApiTaskCommand, LarAPI \ Models \ Common \ ApiTask si LarAPI \ Repositories \ Common \ ApiTaskRepository.
Integrare Slack
Clasa LarAPI \ Modules \ Common \ Services \ SlackClient va ofera un mod simplu de a trimite notificari catre Slack . Pentru a activa aceasta integrare, trebuie sa furnizati variabila ENV SLACK_NOTIFICATIONS_WEBHOOK.
credite
- Wendell Adriel
- Toti colaboratorii
Si o multumire speciala pentru Caneco pentru sigla ✨








