Git Product home page Git Product logo

jpolnasc / another-flaskapi Goto Github PK

View Code? Open in Web Editor NEW

This project forked from hedgarbezerra/another-flaskapi

0.0 1.0 0.0 50 KB

[PT-BR] Outra API Rest com Flask, porém usando um padrão arquitetural diferente para organizar melhor o projeto. [EN-US] Another Flask Rest API but using a new acquired design patterns to better organize the project.

License: GNU General Public License v3.0

Python 100.00%

another-flaskapi's Introduction

API REST usando framework Flask com SQLAlchemy e Marshmallow

How-To

Endpoint de usuários

Listar todos usuários

Definição/Request

GET /v1/users

Response

  • 200 OK ao ter sucesso
{
    "data": [
        {
            "created_on": "2019-06-20T01:49:12+00:00",
            "email": "[email protected]",
            "id": 7,
            "name": "Hector",
            "password": "pbkdf2:sha256:150000$JTZXWfaO$9f81b13091bf87bdc7883f55089efec6421e3ed076d3bbc3bb4476b6b4b8d39f",
            "username": "hector4413"
        },
        {
            "created_on": "2019-06-20T02:09:35+00:00",
            "email": "[email protected]",
            "id": 9,
            "name": "Hedgar",
            "password": "pbkdf2:sha256:150000$JTZXWfaO$9f81b13091bf87bdc7883f55089efec6421e3ed076d3bbc3bb4476b6b4b8d39f",
            "username": "hedgsahj"
        },
        {
            "created_on": "2019-06-20T14:49:06+00:00",
            "email": "[email protected]",
            "id": 10,
            "name": "Hedgar",
            "password": "pbkdf2:sha256:150000$JTZXWfaO$9f81b13091bf87bdc7883f55089efec6421e3ed076d3bbc3bb4476b6b4b8d39f",
            "username": "hed"
        }
    ],
    "message": "successfully fetched"
}

Listar usuários filtrando por nome

Definição/Request

GET /v1/users?name=a

Response

  • 200 OK ao ter sucesso
{
    "data": [
        {
            "created_on": "2019-06-20T02:09:35+00:00",
            "email": "[email protected]",
            "id": 9,
            "name": "Hedgar",
            "password": "pbkdf2:sha256:150000$JTZXWfaO$9f81b13091bf87bdc7883f55089efec6421e3ed076d3bbc3bb4476b6b4b8d39f",
            "username": "hedgsahj"
        },
        {
            "created_on": "2019-06-20T14:49:06+00:00",
            "email": "[email protected]",
            "id": 10,
            "name": "Hedgar",
            "password": "pbkdf2:sha256:150000$JTZXWfaO$9f81b13091bf87bdc7883f55089efec6421e3ed076d3bbc3bb4476b6b4b8d39f",
            "username": "hed"
        }
    ],
    "message": "successfully fetched"
}

Retornar um usuário especifico

GET /v1/users/<id>

Response

  • 404 Not Found usuário não existe
{
    "data": {},
    "message": "user don't exist"
}
  • 200 OK ao ter sucesso
{
    "data": {
        "created_on": "2019-06-20T02:09:35+00:00",
        "email": "[email protected]",
        "id": 9,
        "name": "Hedgar",
        "password": "hecto1r1234",
        "username": "hedgsahj"
    },
    "message": "successfully fetched"
}

Registrando novo usuário

Definição/Request

POST /v1/users

Argumentos

  • "username":string usuário que será mostrado e feito para usar a api
  • "password":string senha que será encriptada antes de ir para o banco
  • "name":string nome do usuário
  • "email":string email que será usado para comunicação

Response

  • 201 Created ao ter sucesso
{
    "data": {
        "created_on": "2019-06-20T19:38:35+00:00",
        "email": "[email protected]",
        "id": 11,
        "name": "Hedgar",
        "password": "pbkdf2:sha256:150000$1GZZJmHH$671c1dffb868b6dc72b459fb3c2cb8cd2dd547b4d4f64834139469a562dc4b0a",
        "username": "hexd"
    },
    "message": "successfully registered"
}
  • 200 Created ao ter erro com usuário ou email existente
{
    "data": {
        },
    "message": "user already exists"
}
  • 500 Internal error ao ter erro com o servidor ou sistema
{
    "data": {},
    "message": "unable to create"
}

Atualizando usuário

Definição/Request

PUT /v1/users/<id>

Argumentos

  • "username":string usuário que será mostrado e feito para usar a api(eventualmente)
  • "password":string senha que será encriptada antes de ir para o banco(eventualmente)
  • "name":string nome do usuário
  • "email":string email que será usado para comunicação(caso necessário)

Response

  • 201 Created ao ter sucesso
{
    "data": {
        "created_on": "2019-06-20T02:09:35+00:00",
        "email": "[email protected]",
        "id": 9,
        "name": "Hedgar",
        "password": "pbkdf2:sha256:150000$zm6vMaTn$eedf14ff2b30a449e52be4a96ae0533d437faba3869ae93d7297e5036f2f4ffc",
        "username": "hex1x11d"
    },
    "message": "successfully updated"
}
  • 404 Not Found usuário não existe
{
    "data": {},
    "message": "user don't exist"
}
  • 500 Internal error ao ter erro com servidor ou sistema
{
    "data": {},
    "message": "unable to update"
}

Deletar usuário

Definição

DELETE /v1/users/<id>

Response

  • 200 No Content ao ter sucesso
{
    "data": {
        "created_on": "2019-06-20T01:38:55+00:00",
        "email": "[email protected]",
        "id": 3,
        "name": "Hector",
        "password": "hector1234",
        "username": "hector12113"
    },
    "message": "successfully deleted"
}
  • 404 Not Found usuário não existente
{
    "data": {},
    "message": "user don't exist"
}
  • 500 Internal error erro com servidor ou sistema
{
    "data": {},
    "message": "unable to delete"
}

Autenticação do token com servidor JWT

POST /v1/auth

No header do seu JavaScript será necessário passar os dados do usuário.

Authorization: 'Basic ' + btoa(username + ':' + password)

Response

  • 401 Not Found caso não exista
  • 200 OK ao ter sucesso
{
 "token": "QIHWEUkoqwe8291j1ioe2j12jjw9218.JASJA.WQIUH3uijs0a",
 "exp": "Mon, 20 May 2019 10:45:50 GMT"
}

another-flaskapi's People

Contributors

hedgarbezerra avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.