Rozšíření API requestu – doplnění informací
- NouF
- Člen | 67
Ahoj,
můžu se zeptat, jak řešit „rozšíření requestu“?
V API požadavku posílám toto:
grant_type:client_credentials
client_id:2
client_secret:321321
scope:test
Ale chci si to trochu upravit, abych třeba neposílal grant_type (ten si vezmu např. z URL)
client_id:2
client_secret:321321
scope:test
Myšlenka je taková, že uživatel pošle jen client_id, secret a scope a já si rozšířím tento request o ten parameter.
public function credentials(ApiRequest $request, ApiResponse $response)
{
try {
// můžu v tomto místě rozšířit ten $request?
return $this->server->respondToAccessTokenRequest($request, $response);
Moc děkuju
- dakur
- Člen | 493
@NouF Záleží na tom, co je za třídu ApiRequest
. To
je tvoje nebo z nějaké knihovny? Řeší se to různě, např. tak, že
třída ApiRequest
může mít nějakou metodu
withParameter(string $key, string $value): self
, která vrátí
novou instanci sebe sama obohacenou o nový parametr. Nebo samozřejmě
můžeš použít i mutable variantu
$request->addParameter()
.
- dakur
- Člen | 493
@NouF Ta třída dědí ze třídy ProxyRequest
a ta přesně ty with*()
metody obsahuje. Záleží už tedy jen na
tom, jak přesně máš ty parametry udělané – jestli jako query string,
nebo v těle požadavku – podle toho zvolíš příslušnou metodu.
Víceméně to pak bude vypadat nějak takto:
public function credentials(ApiRequest $request, ApiResponse $response)
{
try {
$request = $request->withQueryParams(['grant_type' => 'client_credentials']); // v případě query parametrů
return $this->server->respondToAccessTokenRequest($request, $response);