gsferro / microservico
Criado com objetivo de generalizar o consumo de API/WEBSERVICES
v2.7.0
2022-04-27 13:38 UTC
Requires
- ixudra/curl: ^6.16
README
Criado com objetivo de generalizar o consumo de API/WEBSERVICES
Instalação:
composer require gsferro/microservico
php artisan vendor:publish --provider="Gsferro\MicroServico\Providers\MicroServicoServiceProvider"
Versão 1.0
Os hosts são pré-configurados no arquivo microserviço.
POST
microservico()->post($api, $array);
PUT
microservico()->put($api, $param, $array);
GET
microservico()->get($api, $param);
GET WITH DATA
para ser usada com parametros url
microservico()->getWithData($api, $arrayData);
Access Token
Recupera o token oauth2 / jwt
microservico()->accessToken( $api, $clienteId, $clienteSecret, $grantType = "client_credentials", $authorization = "Basic" );
CURL
Devolve uma chamada de Curl::to
microservico()->api($api);
DELETE
microservico()->delete($api, $param);
Chamada get de api via url
microservico()->to($url, $params = null);
Adicionar extra Header
microservico()->setExtraHeader([ "content-type" => "application/json", "Authorization" => "Basic abcdefghijabcdefghijABCDEFGHIJ=", ]);
EXEMPLOS
public function getTaxa(Request $request) { $dados = $request->all(); $host_taxa = 'ROUTE_EDITAIS_ETAPAS_TAXAS'; return microservico()->get($host_taxa, $dados['taxa_id']); } public function removerTaxa(Request $request) { $dados = $request->all(); $id = $dados['taxa_id']; $host_taxa = 'ROUTE_EDITAIS_ETAPAS_TAXAS'; $resultado = microservico()->delete($host_taxa, $param); if ($resultado->success == true) { $return = [ 'type' => 'success', 'msg' => utf8_encode('Dados atualizados com sucesso!'), ]; } else { $return = [ 'type' => 'error', 'msg' => utf8_encode('Ocorreu um erro!'), ]; } return $return; } public function adicionarTaxa(Request $request) { $dados = $request->all(); $host_taxa = 'ROUTE_EDITAIS_ETAPAS_TAXAS'; $resultado = microservico()-post($host_taxa, $dados); if ($resultado->success == true) { $return = [ 'type' => 'success', 'msg' => utf8_encode('Dados atualizados com sucesso!'), ]; } else { $return = [ 'type' => 'error', 'msg' => utf8_encode('Ocorreu um erro!'), ]; } return $return; } public function editarTaxa(Request $request) { $dados = $request->all(); $id = $dados['taxa_id']; unset($dados['taxa_id']); $host_taxa = 'ROUTE_EDITAIS_ETAPAS_TAXAS'; $resultado = microservico()-put($host_taxa, $param ,$dados); if ($resultado->success == true) { $return = [ 'type' => 'success', 'msg' => utf8_encode('Dados atualizados com sucesso!'), ]; } else { $return = [ 'type' => 'error', 'msg' => utf8_encode('Ocorreu um erro!'), ]; } return $return; } microservico()->getWithData("exemplo", ["foo" => "bar"]); // url: http://exemplo.com.br?foo=bar
Versão 2.0
- Implementação do principio:
Tell, Don´t ask
, criando métodos que já implementam a lógica em cima da chamada da api, evitando assim que toda a vez que for usado em um projeto, aja a necessidade de copiar o código. - Para manter a compatibilidade, ainda poderá ser usado o metodo da v1 e os retornos deles não foram alterado.
- Nas novas apis, foi aplicado o padrão
snake_case
em todos os campos. - Necessário para implementação de segurança, além das que já existe no integrator, nas apis internas seguindo o exigido pela nova lei da LGPD.
- O verbo http é o prefixo do metodo, seguindo com o devido endpoint configurado no
config.microservico
. - PHPDoc implementado em cada novo metodo com retornos e parametros
- Tests Units testando todos os endpoints quanto ao retorno de estrutura, array e json, apontando para os ambients de produção, foram implementados no projeto ACESSO.
Retorno customizado
- Para setar como deseja receber o retorno: array ou json (default array)
microservico()->returnJson()
Configuração
- No env, QUE NÃO SEJA DE PRODUÇÃO, sete:
############## configurar somente para ambientes de desenv/teste/homol: # desenv API_V1_SERVICE="desenv-basecorporativa" APP_AMBIENTE="Desenv -" # teste API_V1_SERVICE="teste-basecorporativa" APP_AMBIENTE="Teste -" # homol API_V1_SERVICE="homolog-basecorporativa" APP_AMBIENTE="Homolog -" # APP_AMBIENTE pode ser usado também para concatenar ao nome do sistema para deixar claro o ambiente
Uso
- Para usar a api de algum serviço/projeto, é necessário solicitar usuário e senha e colocar no env:
GSFERRO_MICROSERVICO_WSO2_EI_USER GSFERRO_MICROSERVICO_WSO2_EI_PASSWORD
- lista de apis por serviço:
- ACESSO
getProgramasEspeciais()
getDadosModal(int $idEdicao)
getPessoaInscricoes(string $uuidPessoa)
getListaProgramasEspeciais(int $idProgramaEspecial)
getListaEditaisAbertos()
getListaProgramasEspeciaisComFuturos(int $idProgramaEspecial)
getListaCandidatosProgramaEspecial(int $idProgramaEspecial)
getListaCandidatosProgramaEdital(string $uuidEdital)
getDataDivulgacao(string $uuidEdital)
- SICAVE
getSicaveVeiculo(string $cpf)
getSicaveAdvertencias(string $cpf)
- BANCO COMPETENCIAS
getVerificaCompetencia(string $cpf)
getListarCompetenciasPorCPF(string $cpf)
getVerificaCompetenciaProxy(string $cpf)
getListarCompetenciasPorCPFProxy(string $cpf)
- SERVIDORES (v3)
getContarTotalColaboradores()
getBuscarCargosServidoresFiocruz()
getBuscarColaboradorPorCpf(string $cpf, bool $somenteSituacaoAtivo = true)
getBuscarColaboradorPorNome(string $nome, bool $somenteSituacaoAtivo = true)
getBuscarColaboradorPorMatriculaSiape(int $matricula)
getBuscarColaboradoresPorVinculo(string $vinculo)
getBuscarColaboradoresPorCodigoLocalizacao(string $codigolocalizacao)
getBuscarColaboradoresPorCodigoLotacao(string $codigolotacao)
getBuscarColaboradorAtivoPorEmail(string $email)
getTodoHistoricoLotacaoLocalizacaoPorMatricula(string $matriculaSiape)
getBuscarColaboradoresPorVinculoPaginando($codigoVinculo = "02", int $limin = 1, int $limax = 10)
getBuscarColaboradoresPorCodigoLotacaoPaginando($codigoLotacao, int $limin = 1, int $limax = 10)
- TRANSPORTE
getListarUsuariosPorLinha($usuLinha)
getLinhasusuario(string $cpf)
- SIEF
getContarEdicoes()
getIndiceProgramas()
getListarEditaisPrevistos()
getListarProcessosSeletivosAbertos()
getBuscarCurso(int $idCurso)
getListarCoordenadoresCurso(int $idCurso)
getListarLinhasDePesquisa(int $idCurso)
getListarDocumentosPorEdital(string $uuidEdital)
getInscritosProcessoSeletivo(string $uuidEdital)
getListarCandidatosDesistentesEdital(string $uuidEdital)
getBuscarNatureza(int $idNatureza)
getBuscarPrograma(int $idPrograma)
getBuscarUnidade(string $uuidUnidade)
getBuscarNaturezaTipo(int $idNatTipo)
getBuscarTipoNatureza(int $idTipo)
getListarEdicoesCursos(int $limim = 1, int $limax = 1)
getBuscarPais(string $uuidPais)
getBuscarCidade(string $uuidCidade)
getBuscarUF(string $uuidUf)
- SIE SIEF
getCandidatosEstrangeirosAprovados()
getDadosCurso(string $idCurso)
getDocumentosPessoaCurso(string $uudiCandidato, string $idCurso)
getCursoCandidatosAprovados()
getCursoCandidatosPorUuid(string $uudiCandidato)
getDadosSolicitanteCurso(string $idCurso, string $uudiCandidato)
getCursoCandidatosMatriculados()
- MOBILIDADE
getObterEditaisPublicados()
getObterAnexosEdital(int $idEdital)
getListarDadosPorMatricula(string $codigo)
getListarSituacaoFuncionalPorCodigo(string $codigo)
getListarTipoAfastamentoPorCodigo(string $codigo)
getListarMatriculaCargoPorCpf(string $cpf)
getListarAvaliacaoDesempenhoPorSiape(string $matriculaSiape, int $anoInicial, int $anoFinal)
getListarAfastamentoServidorSiapeDataInicio(string $matriculaSiape, string $dtInicio, string $dtFim)
getListarAfastamentoServidorSiapeDataFim(string $matriculaSiape, string $dtInicio, string $dtFim)
getListarHistoricoLotacaoLocalizacao(string $matriculaSiape, string $anoInicial, string $anoFinal)
getListarHistoricoLotacaoLocalizacaoPorAno(string $matriculaSiape, int $anoInicial, int $anoFinal)
- BASE CORPORATIVA
getDadosPessoais(string $cpf)
getDadosPessoaisPorEmail(string $email)
getBuscaCidadePorCod(string $cod)
- RSI
getListarHistoricoChamadosPorCpf(string $cpf)
getListarChamadosAbertosPorCpf(string $cpf)
getListarChamadosNaoFinalizadosPorCpf(string $cpf)
getListarChamadosEncerrados(int $limim = 1, int $limax = 10)
getListarServicos(int $limim = 1, int $limax = 10)
getListarTecnicosPorEquipe(int $limim = 1, int $limax = 10)
getListarDadosRequisicao(int $limim = 1, int $limax = 10)
- LOGIN UNICO
getListarDadosPorEmail(string $email)
getListarDadosPorCpf(string $cpf)
- ACESSO