Отправка пустого запроса POST в приложении Symfony API-платформыPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Отправка пустого запроса POST в приложении Symfony API-платформы

Сообщение Anonymous »

В моем приложении Symfony на платформе API у меня есть класс Membership, который представляет отношения «многие ко многим» между пользователями и сообществами. Он содержит только два маршрута: DELETE для выхода пользователя из сообщества и POST для присоединения.

Код: Выделить всё

Membership
класс сущности:

Код: Выделить всё

#[ORM\Entity(repositoryClass: MembershipRepository::class)]
#[ApiResource(
description: "A representation of a single user being a member of a given subreddit.",
operations: [
new Post(
uriTemplate: '/subreddits/{subreddit_id}/join.{_format}',
uriVariables: [
'subreddit_id' => new Link(
fromClass: Community::class,
fromProperty: 'members',
),
],
security: "is_authenticated()",
securityMessage: "Only logged-in users can join a subreddit.",
denormalizationContext: ['groups' => ['membership:create']],
// openapiContext: ['requestBody' => false],
// openapiContext: ['requestBody' => ['content' => ['application/ld+json' => ['schema' => ['type' => 'object']]]]],
input: Community::class,
provider: CommunityStateProvider::class,
processor: MembershipPersistStateProcessor::class,
),
new Delete(
uriTemplate: '/subreddits/{subreddit_id}/leave.{_format}',
uriVariables: [
'subreddit_id' => new Link(
fromClass: Community::class,
fromProperty: 'members'
),
],
security: "is_authenticated()",
securityMessage: "Only logged-in users can leave a subreddit.",
input: Community::class,
provider: CommunityStateProvider::class,
processor: MembershipRemoveStateProcessor::class,
),
],
)]
#[UniqueEntity(fields: ['subreddit', 'member'], message: "You are already a member of this subreddit.")]
class Membership
Поскольку данные пользователя извлекаются из токена доступа, а данные сообщества передаются через переменную URI, тело JSON не требуется.
И ...

Код: Выделить всё

$response = $client->request('POST', 'api/subreddits/'.$community->getId().'/join', [
'headers' => [
'Content-Type' => 'application/ld+json',
'Authorization' => 'Bearer ' . $token,
],
'json' => [],
]);
...выглядит просто ужасно.
На основе запросов на включение, которые я нашел в репозитории платформы API (pull), разрешает пустые запросы для POST и PUT должно быть возможно, установив для типа контента значение '', но все конфигурации, которые я пробовал, приводили только к большему количеству ошибок. Есть ли способ добиться этого?

Подробнее здесь: https://stackoverflow.com/questions/780 ... pplication
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»