Gerenciador para facilitar o desenvolvimento padronizado
Project description
Tools kit
Desc aqui
Instalação
Você pode instalar o pacote via pip. Execute o seguinte comando no terminal:
pip install tools-kit
Constantes:
Para utilizar as constantes do pacote, basta importar os arquivos:
from tools_rest import nome_arquivo_const
Ex.:
from tools_rest import constants_exc
pegar_conteudo = constants_exc.HTTP_400
print(pegar_conteudo) #impreme o valor: Verifique se os dados enviados estão corretos e completos.
Ou:
from tools_rest.nome_arquivo_const import nome_const
Ex.:
from tools_rest.constants_exc import HTTP_400
pegar_conteudo = HTTP_400
print(pegar_conteudo) #impreme o valor: Verifique se os dados enviados estão corretos e completos.
Nomes arquivos e constantes:
constants_exc:
HTTP_400
HTTP_403
HTTP_404
HTTP_500
Exceptions Handler
Para que o handler customizado seja ativado, basta adicionar uma chave em settings.py:
CUSTOM_EXCEPTION = {
}
Configurando
Para adicionar o handler personalizado de exceções rest, basta adicionar o atributo ADD_CUSTOM_HANDLER a chave CUSTOM_EXCEPTION localizada no arquivo settings.py:
CUSTOM_EXCEPTION = {
'ADD_CUSTOM_HANDLER': True
}
Ao receber uma exceção 400, essa personalização irá retornar o seguinte modelo:
{
'result': null,
'errors': [
conteudo da constante constants_exc.HTTP_400 ou personalizado
],
'success': False
}
#Obs.: Quando a exceção for de validators, o conteudo de errors sera 'nomeProp: mensagem de falha'
#Ex.: 'name: Campo obrigatório'
Ao receber uma exceção 403, essa personalização irá retornar o seguinte modelo:
{
'result': null,
'errors': [
conteudo da constante constants_exc.HTTP_403 ou personalizado
],
'success': False
}
Ao receber uma exceção 404, essa personalização irá retornar o seguinte modelo:
{
'result': null,
'errors': [
conteudo da constante constants_exc.HTTP_404 ou personalizado
],
'success': False
}
Ao receber uma exceção 500, essa personalização irá retornar o seguinte modelo:
{
'result': null,
'errors': [
conteudo da constante constants_exc.HTTP_500 ou personalizado
],
'success': False
}
Handlers urls base
Este modelo é utilizado para não obter mensagens fora de um padrão, trazendo assim o modelo
{
'result': null,
'errors': [
conteudo da constante constants_exc ou personalizado
],
'success': False
}
Para adicionar um ou mais handler de urls base, existem duas formas
1 - Adicionando um parametro a chave CUSTOM_EXCEPTION no arquivo settings.py:
CUSTOM_EXCEPTION = {
'ADD_CUSTOM_HANDLER': True,
'URLS_HANDLER': (400, 403, 404, 500)
}
Não é necessario ter a chave ADD_CUSTOM_HANDLER para utilizar os handlers base.
Pode ter um ou mais codigos, sendo eles 400, 403, 404, 500
2 - Chamando os metodos criados diretamente no handler, para isso, basta importar os metodos customizados dentro do arquivo urls, no diretório que esta o settings.py da aplicação.
from tools_rest.exceptions import exception_400, exception_403, exception_404, exception_500
from tools_rest import exceptions
Ex.:
from tools_rest.exceptions import exception_400, exception_403, exception_404, exception_500
handler400 = exception_400
handler403 = exception_403
handler404 = exception_404
handler500 = exception_500
ou
from tools_rest import exceptions
handler400 = exceptions.exception_400
handler403 = exceptions.exception_403
handler404 = exceptions.exception_404
handler500 = exceptions.exception_500
Não é necessario adicionar os quatro handlers, pode ser editado um ou mais.
Customizando mensagens
Para customizar mensagens, é necessário adicionar à chave CUSTOM_EXCEPTION localizada em settings.py o seguinte comando:
CUSTOM_EXCEPTION = {
'EXCEPTIONS':{
'HTTP_400': 'Mensagem personalizada para o erro 400',
'HTTP_403': 'Mensagem personalizada para o erro 403',
'HTTP_404': 'Mensagem personalizada para o erro 404',
'HTTP_500': 'Mensagem personalizada para o erro 500'
}
}
Pode alterar um ou mais status, porem, a que não for mencionada a essa chave, utilizarão as padrões que existem.
Modelo padrão de resultado:
ResultViewModel é um modelo utilizado para padronizar retornos, facilitando a integração de frontend e backend.
{
'result': 'Modelo generico, podendo ser enviado qualquer tipo de dado',
'errors': 'Lista de texto de erros',
'success': 'Boleano que informa se a requisição foi verdadeira ou falsa'
}
Para utilizar esse modelo, basta importar:
from tools_rest.response_view import ResultViewModel, sucesso, bad_request, response
ResultViewModel
Podem ou não receber parametros na criação, sendo eles: errors = lista de erro. result = objeto que ira retornar, podendo ser nulo ou não.
Retorno result:
{
'result': 'modelo' or null,
'errors': [
'erros aqui'
]
'success': 'boleano, caso exista alguma msg '
}
para criar o modelo, deve-se utilizar o invocador padrão de objetos:
result = ResultViewModel()
ou
result = ResultViewModel('Erro um', 'Erro dois')
ou
lista = []
lista.append('erro um')
lista.append('erro dois')
result = ResultViewModel(lista)
ou
result = ResultViewModel(result=True)
Funçoes internas
Recebe um modelo por default, retornando ele no função externo response()
def add_result(model)
Retorno:
{
'result': modelo enviado,
'errors': []
'success': True
}
Recebe um texto, varios em sequencia e/ou uma lista de erros para utilizar na função exterma response()
def add_errors(*msg:str)
Retorno:
{
'result': null
'errors': [
'Erro aqui'
]
'success': False
}
Funções externas
Result: Recebe um modelo de retorno.
Errors: Lista de erros virá vazia.
Success: True como resultado.
Essa requisição retorna um status code 200
Retorna um Response()
def sucesso(model)
Retorno:
{
'result': modelo enviado,
'errors': []
'success': True
}
Result: Aqui ficará como null.
Errors: Recebe uma str, list(str) ou multiplas str. ex.:bad_request('erro1', 'erro2')
Success: False como resultado.
Essa requisição retorna um status code 400
Retorna um Response()
def bad_request(*msg)
Retorno:
{
'result': null,
'errors': [
'erro1',
'erro2'
]
'success': True
}
Retorna um response totalmente customizado, podendo vir como sucesso ou erro, mas devera ser informado um ResultViewModel como parametro
StatusCode é opcional.
Retorna, 200 se enviado um modelo ao ResultViewModel
400 se enviado errors ao ResultViewModel
Personalizado caso o status code seja enviado
def response(resultview : ResultViewModel, status_code: int = None)
Retorno:
{
'result': 'Modelo enviado',
'errors': 'Erro(s) enviado(s)',
'success': 'Caso possua errors, sera False, senão True'
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file tools-kit-0.2.0.tar.gz.
File metadata
- Download URL: tools-kit-0.2.0.tar.gz
- Upload date:
- Size: 6.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
20b8676a0c925302aae8b688ca21f79d4c6d1750b68c5c2c45926adc9f9fe609
|
|
| MD5 |
0b0f5ea4eab40cb4ae17cb50c5315314
|
|
| BLAKE2b-256 |
958d415b299ea6d6ad216c61ee45145e6190708fa035657c12d6fbe7b8b5c1d4
|