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