gsferro / microservico
Criado com objetivo de generalizar o consumo de API/WEBSERVICES
This package's canonical repository appears to be gone and the package has been frozen as a result. Email us for help if needed.
Installs: 267
Dependents: 1
Suggesters: 0
Security: 0
Stars: 2
Watchers: 2
Forks: 2
Open Issues: 0
pkg:composer/gsferro/microservico
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_caseem 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