gsferro/microservico

旨在通用化 API/WEBSERVICES 的消费

v2.7.0 2022-04-27 13:38 UTC

This package is auto-updated.

Last update: 2022-06-27 14:00:09 UTC


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 列表
    1. ACESSO
      1. getProgramasEspeciais()
      2. getDadosModal(int $idEdicao)
      3. getPessoaInscricoes(string $uuidPessoa)
      4. getListaProgramasEspeciais(int $idProgramaEspecial)
      5. getListaEditaisAbertos()
      6. getListaProgramasEspeciaisComFuturos(int $idProgramaEspecial)
      7. getListaCandidatosProgramaEspecial(int $idProgramaEspecial)
      8. getListaCandidatosProgramaEdital(string $uuidEdital)
      9. getDataDivulgacao(string $uuidEdital)
    2. SICAVE
      1. getSicaveVeiculo(string $cpf)
      2. getSicaveAdvertencias(string $cpf)
    3. BANCO COMPETENCIAS
      1. getVerificaCompetencia(string $cpf)
      2. getListarCompetenciasPorCPF(string $cpf)
      3. getVerificaCompetenciaProxy(string $cpf)
      4. getListarCompetenciasPorCPFProxy(string $cpf)
    4. SERVIDORES (v3)
      1. getContarTotalColaboradores()
      2. getBuscarCargosServidoresFiocruz()
      3. getBuscarColaboradorPorCpf(string $cpf, bool $somenteSituacaoAtivo = true)
      4. getBuscarColaboradorPorNome(string $nome, bool $somenteSituacaoAtivo = true)
      5. getBuscarColaboradorPorMatriculaSiape(int $matricula)
      6. getBuscarColaboradoresPorVinculo(string $vinculo)
      7. getBuscarColaboradoresPorCodigoLocalizacao(string $codigolocalizacao)
      8. getBuscarColaboradoresPorCodigoLotacao(string $codigolotacao)
      9. getBuscarColaboradorAtivoPorEmail(string $email)
      10. getTodoHistoricoLotacaoLocalizacaoPorMatricula(string $matriculaSiape)
      11. getBuscarColaboradoresPorVinculoPaginando($codigoVinculo = "02", int $limin = 1, int $limax = 10)
      12. getBuscarColaboradoresPorCodigoLotacaoPaginando($codigoLotacao, int $limin = 1, int $limax = 10)
    5. TRANSPORTE
      1. getListarUsuariosPorLinha($usuLinha)
      2. getLinhasusuario(string $cpf)
    6. SIEF
      1. getContarEdicoes()
      2. getIndiceProgramas()
      3. getListarEditaisPrevistos()
      4. getListarProcessosSeletivosAbertos()
      5. getBuscarCurso(int $idCurso)
      6. getListarCoordenadoresCurso(int $idCurso)
      7. getListarLinhasDePesquisa(int $idCurso)
      8. getListarDocumentosPorEdital(string $uuidEdital)
      9. getInscritosProcessoSeletivo(string $uuidEdital)
      10. getListarCandidatosDesistentesEdital(string $uuidEdital)
      11. getBuscarNatureza(int $idNatureza)
      12. getBuscarPrograma(int $idPrograma)
      13. getBuscarUnidade(string $uuidUnidade)
      14. getBuscarNaturezaTipo(int $idNatTipo)
      15. getBuscarTipoNatureza(int $idTipo)
      16. getListarEdicoesCursos(int $limim = 1, int $limax = 1)
      17. getBuscarPais(string $uuidPais)
      18. getBuscarCidade(string $uuidCidade)
      19. getBuscarUF(string $uuidUf)
    7. SIE SIEF
      1. getCandidatosEstrangeirosAprovados()
      2. getDadosCurso(string $idCurso)
      3. getDocumentosPessoaCurso(string $uudiCandidato, string $idCurso)
      4. getCursoCandidatosAprovados()
      5. getCursoCandidatosPorUuid(string $uudiCandidato)
      6. getDadosSolicitanteCurso(string $idCurso, string $uudiCandidato)
      7. getCursoCandidatosMatriculados()
    8. MOBILIDADE
      1. getObterEditaisPublicados()
      2. getObterAnexosEdital(int $idEdital)
      3. getListarDadosPorMatricula(string $codigo)
      4. getListarSituacaoFuncionalPorCodigo(string $codigo)
      5. getListarTipoAfastamentoPorCodigo(string $codigo)
      6. getListarMatriculaCargoPorCpf(string $cpf)
      7. getListarAvaliacaoDesempenhoPorSiape(string $matriculaSiape, int $anoInicial, int $anoFinal)
      8. getListarAfastamentoServidorSiapeDataInicio(string $matriculaSiape, string $dtInicio, string $dtFim)
      9. getListarAfastamentoServidorSiapeDataFim(string $matriculaSiape, string $dtInicio, string $dtFim)
      10. getListarHistoricoLotacaoLocalizacao(string $matriculaSiape, string $anoInicial, string $anoFinal)
      11. getListarHistoricoLotacaoLocalizacaoPorAno(string $matriculaSiape, int $anoInicial, int $anoFinal)
    9. BASE CORPORATIVA
      1. getDadosPessoais(string $cpf)
      2. getDadosPessoaisPorEmail(string $email)
      3. getBuscaCidadePorCod(string $cod)
    10. RSI
      1. getListarHistoricoChamadosPorCpf(string $cpf)
      2. getListarChamadosAbertosPorCpf(string $cpf)
      3. getListarChamadosNaoFinalizadosPorCpf(string $cpf)
      4. getListarChamadosEncerrados(int $limim = 1, int $limax = 10)
      5. getListarServicos(int $limim = 1, int $limax = 10)
      6. getListarTecnicosPorEquipe(int $limim = 1, int $limax = 10)
      7. getListarDadosRequisicao(int $limim = 1, int $limax = 10)
    11. LOGIN UNICO
      1. getListarDadosPorEmail(string $email)
      2. getListarDadosPorCpf(string $cpf)