Laravel Microserviço
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)
- 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)
- 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