Package: tools-kit
Tools kitDesc aquiInstalaçãoVocê pode instalar o pacote via pip. Execute o seguinte comando no terminal:pip install tools-kitConstantes:Para utilizar as constantes do pacote, basta importar os arquivos:from tools_rest import nome_arquivo_constEx.:fromtools_restimportconstants_excpegar_conteudo=constants_exc.HTTP_400print(pegar_conteudo)#impreme o valor: Verifique se os dados enviados estão corretos e completos.Ou:from tools_rest.nome_arquivo_const import nome_constEx.:fromtools_rest.constants_excimportHTTP_400pegar_conteudo=HTTP_400print(pegar_conteudo)#impreme o valor: Verifique se os dados enviados estão corretos e completos.Nomes arquivos e constantes:constants_exc:HTTP_400HTTP_403HTTP_404HTTP_500Exceptions HandlerPara que o handler customizado seja ativado, basta adicionar uma chave emsettings.py:CUSTOM_EXCEPTION={}ConfigurandoPara adicionar o handler personalizado de exceções rest, basta adicionar o atributoADD_CUSTOM_HANDLERa chaveCUSTOM_EXCEPTIONlocalizada no arquivosettings.py:CUSTOM_EXCEPTION={'ADD_CUSTOM_HANDLER':True}Ao receber uma exceção 400, essa personalização irá retornar o seguinte modelo:{'result':null,'errors':[conteudodaconstanteconstants_exc.HTTP_400oupersonalizado],'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':[conteudodaconstanteconstants_exc.HTTP_403oupersonalizado],'success':False}Ao receber uma exceção 404, essa personalização irá retornar o seguinte modelo:{'result':null,'errors':[conteudodaconstanteconstants_exc.HTTP_404oupersonalizado],'success':False}Ao receber uma exceção 500, essa personalização irá retornar o seguinte modelo:{'result':null,'errors':[conteudodaconstanteconstants_exc.HTTP_500oupersonalizado],'success':False}Handlers urls baseEste modelo é utilizado para não obter mensagens fora de um padrão, trazendo assim o modelo{'result':null,'errors':[conteudodaconstanteconstants_excoupersonalizado],'success':False}Para adicionar um ou mais handler de urls base, existem duas formas
1 - Adicionando um parametro a chaveCUSTOM_EXCEPTIONno arquivosettings.py:CUSTOM_EXCEPTION={'ADD_CUSTOM_HANDLER':True,'URLS_HANDLER':(400,403,404,500)}Não é necessario ter a chaveADD_CUSTOM_HANDLERpara utilizar os handlers base.
Pode ter um ou mais codigos, sendo eles400,403,404,5002 - Chamando os metodos criados diretamente no handler, para isso, basta importar os metodos customizados dentro do arquivourls, no diretório que esta osettings.pyda aplicação.from tools_rest.exceptions import exception_400, exception_403, exception_404, exception_500from tools_rest import exceptionsEx.:fromtools_rest.exceptionsimportexception_400,exception_403,exception_404,exception_500handler400=exception_400handler403=exception_403handler404=exception_404handler500=exception_500oufromtools_restimportexceptionshandler400=exceptions.exception_400handler403=exceptions.exception_403handler404=exceptions.exception_404handler500=exceptions.exception_500Não é necessario adicionar os quatro handlers, pode ser editado um ou mais.Customizando mensagensPara customizar mensagens, é necessário adicionar à chaveCUSTOM_EXCEPTIONlocalizada emsettings.pyo seguinte comando:CUSTOM_EXCEPTION={'EXCEPTIONS':{'HTTP_400':'Mensagempersonalizadaparaoerro400','HTTP_403':'Mensagempersonalizadaparaoerro403','HTTP_404':'Mensagempersonalizadaparaoerro404','HTTP_500':'Mensagempersonalizadaparaoerro500'}}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:fromtools_rest.response_viewimportResultViewModel,sucesso,bad_request,responseResultViewModelPodem 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'ornull,'errors':['erros aqui']'success':'boleano, caso exista alguma msg '}para criar o modelo, deve-se utilizar o invocador padrão de objetos:result=ResultViewModel()ouresult=ResultViewModel('Erro um','Erro dois')oulista=[]lista.append('erro um')lista.append('erro dois')result=ResultViewModel(lista)ouresult=ResultViewModel(result=True)Funçoes internasRecebeummodelopordefault,retornandoelenofunçãoexternoresponse()defadd_result(model)Retorno:{'result':modeloenviado,'errors':[]'success':True}Recebeumtexto,variosemsequenciae/ouumalistadeerrosparautilizarnafunçãoextermaresponse()defadd_errors(*msg:str)Retorno:{'result':null'errors':['Erro aqui']'success':False}Funções externasResult:Recebeummodeloderetorno.Errors:Listadeerrosvirávazia.Success:Truecomoresultado.Essarequisiçãoretornaumstatuscode200RetornaumResponse()defsucesso(model)Retorno:{'result':modeloenviado,'errors':[]'success':True}Result:Aquificarácomonull.Errors:Recebeumastr,list(str)oumultiplasstr.ex.:bad_request('erro1','erro2')Success:Falsecomoresultado.Essarequisiçãoretornaumstatuscode400RetornaumResponse()defbad_request(*msg)Retorno:{'result':null,'errors':['erro1','erro2']'success':True}Retornaumresponsetotalmentecustomizado,podendovircomosucessoouerro,masdeveraserinformadoumResultViewModelcomoparametroStatusCodeéopcional.Retorna,200seenviadoummodeloaoResultViewModel400seenviadoerrorsaoResultViewModelPersonalizadocasoostatuscodesejaenviadodefresponse(resultview:ResultViewModel,status_code:int=None)Retorno:{'result':'Modelo enviado','errors':'Erro(s) enviado(s)','success':'Caso possua errors, sera False, senão True'}