gsferro / microservico
旨在通用化 API/WEBSERVICES 的消费
v2.7.0
2022-04-27 13:38 UTC
Requires
- ixudra/curl: ^6.16
README
旨在通用化 API/WEBSERVICES 的消费
安装
composer require gsferro/microservico
php artisan vendor:publish --provider="Gsferro\MicroServico\Providers\MicroServicoServiceProvider"
版本 1.0
hosts 已在 microserviço 文件中预配置。
POST
microservico()->post($api, $array);
PUT
microservico()->put($api, $param, $array);
GET
microservico()->get($api, $param);
带有数据的 GET
用于与 URL 参数一起使用
microservico()->getWithData($api, $arrayData);
访问令牌
获取 oauth2 / jwt 令牌
microservico()->accessToken( $api, $clienteId, $clienteSecret, $grantType = "client_credentials", $authorization = "Basic" );
CURL
返回一个 Curl::to 调用
microservico()->api($api);
DELETE
microservico()->delete($api, $param);
通过 URL 调用 API GET
microservico()->to($url, $params = null);
添加额外头
microservico()->setExtraHeader([ "content-type" => "application/json", "Authorization" => "Basic abcdefghijabcdefghijABCDEFGHIJ=", ]);
示例
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
版本 2.0
- 实现原则:创建已经在上层实现逻辑的方法,避免每次在项目中使用时都需要复制代码。
- 为了保持兼容性,仍可以使用 v1 的方法,它们的返回值没有改变。
- 在新的 API 中,所有字段都使用了
snake_case语法。 - 为了实现安全性,除了集成器中已有的安全性外,内部 API 还需要遵循新 LGPD 法规的要求。
- HTTP 动词是方法的名称前缀,后面跟着配置在
config.microservico中的相应端点。 - 每个新方法都实现了 PHPDoc,包括返回值和参数。
- 在项目 ACESSO 中实现了单元测试,测试了所有端点的返回结构、数组和 JSON 格式,并针对生产环境进行了测试。
自定义返回值
- 要设置所需的返回类型:数组或 JSON(默认为数组)
microservico()->returnJson()
配置
- 在非生产环境的 env 中设置
############## 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
使用
- 要使用某个服务/项目的 API,需要请求用户名和密码,并在 env 中设置
GSFERRO_MICROSERVICO_WSO2_EI_USER GSFERRO_MICROSERVICO_WSO2_EI_PASSWORD
- 各服务的 API 列表
- 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