Вызываете разные тонкие рамки URL / REST API под капотом?

Предположим, у меня есть две службы REST:

1) только для аутентификации -> Это имеет / конечную точку входа

2) секунда для других целей -> У этого также есть конечная точка / login, но я хочу вызвать конечную точку службы 1 / login под капотом.

Образцы конечных точек:

1) Сервис № 1 ПОСТ http://service1.com/login (В теле запроса есть «электронная почта» & ‘проходить’)

2) Служба № 2 ПОСТ http://service2.com/login (следует вызвать службу # 1’s / login, передав полный объект запроса, под капотом)

В идеале конечный пользователь вообще не будет знать об услуге № 1. Это требование.

Возможна ли такая структура?

Если нет, что я могу сделать для этого лучше? Просто простое перенаправление?

ПРИМЕЧАНИЕ. — Оба сервиса реализованы с использованием Slim Framework.

1

Решение

Вы можете использовать Guzzle для прокси всего объекта Request (путем изменения Uri), поскольку Slim 3 и Guzzle реализуют PSR-7.

Пример:

<?php
require_once "../vendor/autoload.php";

use Slim\App;
use Slim\Http\Request;
use Slim\Http\Response;
use GuzzleHttp\Client as GuzzleClient;

// Create and configure Slim app
$config = ['settings' => [
'addContentLengthHeader' => false,
'displayErrorDetails' => true,
]];

$app = new App($config);

$app->post('/login', function (Request $request, Response $response) {
$guzzleClient = new GuzzleClient();

$uri = $request->getUri();
$uri = $uri->withHost('domain2.com');

$requestProxy = $request->withUri($uri);

$responseFromRemote = $guzzleClient->send($requestProxy);

return $responseFromRemote;
});

// Run app
$app->run();
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector