API

A API é onde recebemos as requisições vindas do frontend, é a nossa camada de comunicação.

A API é desenvolvida no padrão rest utilizando o flask. Essa camada tem responsabilidade de pegar as informações da requisição HTTP, transformar em objeto e passar para o caso de uso.

Para facilitar o trabalho, desenvolvemos uma abstração do flask. Esta abstração se encontra no arquivo http_rest.py.

Como criar uma API

O arquivo de API fica dentro das pastas de recursos do módulo itflex/server/backend/[modulo]/[recurso]/api.py. Então, antes de você criar este arquivo, você deve ter reproduzido o exemplo de como criar um módulo novo. Nestes exemplos vamos construir um recurso para manipular usuários.

Scopes

Para criar sua api você deve ter definido em seu arquivo scopes.py o escopo de permissão para essa API da seguinte maneira (iremos utilizar esta constante na camada de API):

USERS = "users.users"

API

Com o arquivo de escopos de permissão criado, podemos criar nosso arquivo de API.

from flask import Flask

from itflex.common.http_rest import RestAPI
from itflex.usecases import BaseUC
from itflex_auth import scopes


class UserAPI(RestAPI):
    list_prop = "users"
    paginated = True
    auth = True
    read_scope = scopes.USERS
    write_scope = scopes.USERS


def register_routes(app: Flask, users_uc: BaseUC):
    user_api = UserAPI(users_uc)
    user_api.register(app, "auth.users", "/api/users")