Construiti API-uri REST cu Neo4j si Flask, cat mai repede posibil!
gREST (Framework-based REST API Framework) este un cadru de dezvoltare RESTful API deasupra Python, Flask, Neo4j si Neomodel. Scopul sau principal este de a usura dezvoltarea API-urilor RESTful cu putin efort si cantitate minima de cod.
Compatibilitatea versiunii Python
Daca doriti sa utilizati gREST cu Python 2.7, va trebui sa ramaneti cu vechea versiune 1.4.0. Pentru Python 3.x in continuare, utilizati cea mai recenta versiune incepand cu 2.xx sau ramura master.
Cine foloseste gREST?
Daca utilizati gREST pentru proiectul dvs., va rugam sa ne anuntati pe Twitter sau sa deschideti o problema.
Caracteristici
- Verbe HTTP acceptate: GET, POST, PUT, PATCH, DELETE
- Metode de serializare a raspunsului acceptate (bazate pe acceptarea antetului): JSON, XML, YAML
- Indexarea cu asistenta pentru salt / limita si comanda
- Functii de ajutor pentru gestionarea nodurilor si a relatiilor
- Gestionare simpla a configuratiei
- Validarea automata a datelor de intrare (plus corectia maimutelor a regulilor de validare manuala)
- Suport de relatie profunda intre noduri: / primary_model / primary_model_item / related_model / related_model_item
- Suport pentru obtinerea / postarea datelor relatiei intre noduri
- Suport pentru autentificare si autorizare definite de utilizator
- Suport pentru rute Unicode (de exemplu, etichete Unicode)
Instalare
Pentru a instala gREST, puteti utiliza setuptools (instalati de la sursa) sau puteti utiliza un manager de pachete Python (de exemplu, pip sau easy_install).
- Pentru a instala din codul sursa, clonati depozitul (ar trebui sa aveti git instalat) si apoi rulati setup.py:
- Pentru a instala folosind un manager de pachete python prin pachet binar, pur si simplu executati aceasta comanda (in acest caz am folosit pip, dar orice manager de pachete este acceptat atat timp cat foloseste PyPI):
Instalare mod editare
Documentatie
Pentru documentatie detaliata, vizitati http://grest.readthedocs.io/.
Exemple
Puteti gasi un exemplu de aplicatie in directorul de exemple.
- app.py este o aplicatie simpla simpla care contine un singur traseu (/ persoane).
- Extended_app.
padre enseña a follar a su hija folladas dormidas
caras llenas de semen monjas lesvianas
mi primera follada xxxxporno
rebeca linares masaje mamada a dos bocas
porno parejas maduras españolas sexo
se folla a su compañero de piso porno español incestos
desvirga a su hermana zoofilia con cabras
nonude model lesbianas reales
se folla a su hijo xxx incesto real
videos gays argentinos incesto subtitulado en español
peliculas porno subtituladas en español porno retro maduras
pierre wodman incesto xxx
obliga a su hermana a follar jovencita masturbandose
chicas corriendose a chorros videos culos
maduras en grupo chicos guapos desnudos
tetas en las playas madre follada a la fuerza
porno france pepe porno
porno guarras españolas compilacion anal
chuponas videos incesto online
maduras buenorras negros follando maduraspy este versiunea extinsa a aplicatiei de mai sus si contine un alt traseu (/ animale de companie), relatia sa cu modelul Person si o metoda personalizata (ruta) pentru a gestiona proprietatile RelationshipFrom RelationshipTo este construit automat utilizand modelul secundar si campul de selectie secundara din PersonsView.
grest Command
Pachetul livreaza o comanda foarte simpla care va poate ajuta sa creati o aplicatie Flask boilerplate. Pur si simplu rulati urmatoarea comanda:
Utilizare
Pentru a construi un API, ar trebui sa creati o aplicatie simpla Flask (sau este posibil sa aveti deja una).
O aplicatie simpla Flask:
Pentru a utiliza gREST, ar trebui sa va definiti modelele cu sintaxa Neomodel. Neomodelul este mai usor de utilizat decat alte ORM-uri si drivere. Aruncati o privire la acest exemplu:
Dupa cum puteti vedea, am importat modele din grest, astfel incat sa putem utiliza mixinul Node (care este utilizat in serializarea JSON a datelor modelului). De asemenea, retineti ca clasa Person (model) este mostenitoare de la doi parinti: StructuredNode si Node.
Apoi ar trebui sa mostenim din grest pentru a face o noua viziune asupra modelului nostru (astfel incat sa accepte verbele RESTful):
Cea mai importanta parte a grestului este proprietatile __model__ si __selection_field__. Acestea contin logica pentru a accesa modelele si relatiile dvs. Dupa cum vedeti, modelul nostru principal este Persoana si cheia sa principala (ca sa spunem) este uid, deci campul de selectie al modelului principal este uid.
Ar trebui sa inregistrati aceasta vizualizare:
Introducerea utilizatorului nu trebuie sa fie niciodata de incredere, astfel incat validarea intrarii se face utilizand webargs: Pentru a include validarea intrarii in fiecare model, trebuie sa includeti proprietatea __validation_rules__, care este un dictionar de mapare a cheilor (campurilor modelelor) si a valorilor (tipul de date si reguli de validare) ).
Proprietatea __validation_rules__ exista pentru personalizarea regulilor de validare, odata cu lansarea versiunii 0.2.1, regulile de validare sunt deduse si construite din proprietatile modelelor dvs., deci nu este necesar sa o definiti in majoritatea cazurilor.
Puteti inlocui comportamentul implicit al verbelor HTTP (index, get, post, put, patch si sterge) si, de asemenea, puteti crea puncte finale personalizate in aceasta clasa PersonsView.
Nu in ultimul rand, ar trebui sa configurati conexiunea aplicatiei dvs. la baza de date (Neo4j), ceea ce se realizeaza prin setarea propunerii DATABASE_URL a neomodel.config:
O ultima parte este sa conectati loggerul grest la Flask sau sa utilizati un logger personalizat:
app.ext_logger este variabila cautata de grest, pentru inregistrarea mesajelor.
Implementare
Puteti rula aceasta aplicatie in medii de dezvoltare sau de productie:
Deoarece este aceeasi aplicatie balon, o puteti rula in dezvoltare astfel:
In scopuri de productie, puteti utiliza docker folosind imaginea tiangolo / uwsgi-nginx-flask: python2.7 sau utilizati propria configurare.
Contributie
Contributia este intotdeauna binevenita! Pentru a raporta erori, pur si simplu deschideti o problema si completati-o cu informatii conexe. Pentru a remedia o eroare, furcati depozitul, remediati eroarea, impingeti-o la propria furca, faceti o cerere de extragere si gata!
Licenta
GPLv3








