Сергей
jsonld, jsonapi - там да, все есть
Гена
Мы говорим про базовый функционал апи платформы? Или как вы апи платформу юзаете?
Сергей
https://api-platform.com/docs/core/content-negotiation/
речь идет об использовании raw JSON
Вот использует ли кто то ?
Гена
ну у нас везде application/json
Но мне кажется ты еще о чем-то
Сергей
ну например, есть ресурс, есть get collection
в jsonld есть поле totalItems
благодаря этогому можно быстро нарисовать пагинатор и тд.
в формате RAW json конечно такого нет
вот как это в решается у вас? доп метод count? или может normalizer свой ?
Гена
ну и дока тоже от апи сама на эту тему
Гена
Или ты не про это спрашиваешь?
Сергей
Гена
Сергей
а, ну вот..
Гена
а что должно быть?
мы в api/config/packages/api_platform.yaml отключили все не нужное
Сергей
а как фронт рисует пагинацию, если неизвестно сколько всего в коллекции элементов будет?
Сергей
@context: "/api/contexts/Order", @id: "/api/orders", @type: "hydra:Collection",…}
@context: "/api/contexts/Order"
@id: "/api/orders"
@type: "hydra:Collection"
hydra:member: [{@id: "/api/orders/1", @type: "Order", id: 1, discount: "350.00", preCost: null,…},…]
hydra:totalItems: 18
ну вот например
Сергей
hydra:totalItems: 18
Сергей
т.е. у вас это не используется
Сергей
Сергей
allow_plain_identifiers тоже включали?
Гена
Сергей
Смешанные чувства.. вроде ApiPlatform неплох, но бывают моменты, когда простые вещи делаются довольно странно из за спецификаций..
например,
/me -> вывести инфу и текущем пользователе ( чтоб понять какие роли, отрисовать что то на фронте и тд)
по логике - должно быть в itemOperations, но нет) потому что нужен id для него..
поэтому писать надо в collectionOperations , который по идее вернуть должен массив, а на деле будет объект. для свагера наверное можно тоже подкостылять)
Гена
Гена
Сергей
потому что требуется идентификатор
Сергей
т.е. ID обязателен при itemOperation
Сергей
Jwt, cookies?:)
Сергей
Maxim Kainov
Maxim Kainov
Разве нельзя у апиплатформы свой контроллер слелать и там модифицировать ответ?
Юра
Пишется свагер декоратор который убирает все гет параметры
Юра
https://pastebin.com/abzEtRgQ
Юра
И будет счастие
Сергей
И будет счастие
а у вас что? какой формат для апи - стандартный набор ? или тоже на RAW json ?
Сергей
И будет счастие
нету щастья)
Invalid identifier value or configuration.
Сергей
ну и плюс еще дунглас про это писал на гитхабе
Юра
Не знаю у нас работает
Сергей
ну вот
https://pastebin.com/6V5QXUmx
Сергей
ну и в action для теста
public function __invoke()
{
return $this->repository->findAll()[0];
}
Сергей
я так подозреваю, что от в invoke должнен принять User, но не может) т.к. ID не передали
Юра
Ну да айди нет
Юра
Юзера я так понимаю из сессии
Юра
сутя по урлу /me
Юра
"defaults"={"_api_receive"=false}
Юра
еще вот это надо написать
Сергей
аа..
Юра
на всякий случай удалить кеш руками
Юра
я замечал что какого-то фига на деве если меняешь аннотации они кешируются
Сергей
ща попробую ,пасиб
Сергей
ну как вообще тебе api platform? давно работаешь?
Сергей
"read"=false,
так сработало
Юра
Не знаю. С одной стороны он многое убыстряет. Прототип накидать можно быстро. С другой стороны бывали моменты когда я хотел сделать rm -rf
Юра
Группы сериализации тот еще гемор продумать
Сергей
DTO? тоже плодить их с трансформерами..
Юра
У нас было что все упало на проде
Сергей
так это ... у вас jsonld?
Юра
Оказалось куча лишних данных тянуло
Юра
Гидра
Юра
Что там по дефолту
Сергей
угу.. и апиха тока для фронта или кто то сторонний пользуется? ну типа в общий доступ какой то дается
Юра
не там фронт и всё
Сергей
короч нужно АПИ для фронта и на сторону, чтобы люди могли работать.
вот у меня есть подозрения что мало кто знает про hydra)
Юра
так есть дока
Юра
свагера
Сергей
это да.. но есть сомнения))
"че за iri, дай мне ID" )
Сергей
а со своей поделкой можно как угодно сделать. Благо щас все удобно и быстро можно сделать на симфе, не то что во времена 2.х)
Сергей
по времени по ходу одинаково будет)
Maxim Kainov
Юра
На сторону ты можешь в теории сгенерить код клиента и отдать в виде либы
Anonymous
как понять, какие аргументы приходят в __конструкт класса? класс автовайрится и аргументы "должны" передаваться, но по факту какие-то два отваливаются и ломается совершенно все
Anonymous
даже не так. что делать, если в сервисах эти аргументы есть, из энва они резолвятся, но в класс не приходят ( в классе NULL в значениях этих параметров)? куда копать?
Eugen Su
Аргументы скаляры чтоле? Ты явно в сервис ямл их инжект прописал? Мало инфы)
Anonymous
Аргументы прописаны в default: _bind:, резолвятся из энва
Anonymous
Аргументы строки
Anonymous
Принято
Daria
Принято
просто я тоже с этим долго бодалась и заработало только так как в примере)
Anonymous
Все остальные аргументы работают просто через бинд((((