Как исключить некоторые (вложенные) свойства из моделей, используемых в @SWG \ Response

Я пишу API в Php Laravel и использую аннотации swagger (2.0) (lib: darkaonline / L5-чванство которые используют чванство-PHP) генерировать swagger.json. У меня есть следующее чванство:

@SWG\Definition(
definition="Space",
@SWG\Property( property="id", type="integer", example=33),
@SWG\Property( property="name", type="string" ),
@SWG\Property( property="dataA", type="string", example="very long data string" ),
@SWG\Property( property="dataB", type="string", example="very long data string" ),
),

@SWG\Get(
path="/api/v1/client/space/list",
@SWG\Response( response=200, description="OK",
@SWG\Schema(
type="array",
@SWG\Items(ref="#/definitions/Space"),
)
)
)

Над API должен вернуться список пространств (чтобы показать в таблице), но мне нужно только получить Я бы а также название — тем не мение Космос также есть очень тяжелые поля dataA а также dataB — которые не нужны в таблице. Есть ли способ исключить эти поля без создания отдельных Космос определение для ответа (чтобы избежать взлома «не повторяйся» править)? Есть ли какой-то механизм, чтобы сделать что-то вроде этого:

@SWG\Items(ref="#/definitions/Space", exclude={"dataA","dataB"}),

И / или исключить больше вложенных полей, таких как

exclude={"dataA.securityField","dataA.someList[].heavyField"}

?

PS: я также сообщаю об этом как вопрос / проблема Вот.

0

Решение

В настоящее время не существует реализации такой функциональности, как exclude (смотрите Вот). Однако вы можете попробовать следовать частично приемлемому подходу (вы создаете новое определение, но это определение повторно использует части Космос определение):

@SWG\Definition(
definition="SpaceListEntry",
@SWG\Property( property="id", ref="#/definitions/Space/properties/id" ),
@SWG\Property( property="name", ref="#/definitions/Space/properties/name" ),
)

И в @SWG\Get менять @SWG\Items(ref="#/definitions/Space"), в

@SWG\Items(ref="#/definitions/SpaceListEntry"),

Это решение частично удовлетворяет, но лучше, чем полная копия Космос определение.

1

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

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

По вопросам рекламы [email protected]