Я использую Swagger PHP, и большинство определений легко определить, но у меня проблема с конкретным фрагментом данных, который не является частью отдельного класса, а вместо этого является ассоциативным массивом.
Ответ json, который я хочу показать (упрощенно для этого вопроса):
{
"id": 1,
"status": "published",
"gps": {
"lat": "0.00000000",
"lng": "0.00000000"}
id
а также status
достаточно легко определить, однако gps
Это проблема, так как нет отдельного класса, в котором он может быть определен, это массив внутри модели. Можно ли определить этот массив, не создавая фиктивный класс?
Комментарии в файле модели на данный момент:
/**
* @SWG\Definition(@SWG\Xml(name="Event"))
*/
class Event extends BaseModel {
/**
* @SWG\Property(
* property="id",
* type="integer",
* example="103"* )
* @SWG\Property(
* property="status",
* type="string",
* enum={"published", "draft", "suspended"}
* example="published"* )
*/
}
Столкнулся с точно такой же проблемой и решил ее сегодня!
Это для Swagger 2.0
Ниже приведена вложенность аннотации, которую я использовал для достижения вложенных параметров.
/**
* @SWG\Post(
* path="/getCustomerByEmail.php",
* summary="List the details of customer by the email.",
* consumes={"string"},
* produces={"application/json"},
* @SWG\Parameter(
* name="email",
* in="body",
* description="Customer email to ge the data",
* required=true,
* @SWG\Schema(
* @SWG\Property(
* property="id",
* type="object",
* @SWG\Property(
* property="abc",
* type="object",
* @SWG\Property(
* property="inner abc",
* type="number",
* default=1,
* example=123
* )
* ),
* @SWG\Property(
* property="xyz",
* type="string",
* default="xyz default value",
* example="xyz example value",
* )
* )
* )
* ),
* @SWG\Response(
* response=200,
* description="Details of the customer"* ),
* @SWG\Response(
* response=400,
* description="Email required"* ),
* @SWG\Response(
* response=404,
* description="Customer does not exist"* ),
* @SWG\Response(
* response="default",
* description="an ""unexpected"" error"* )
* )
*/
/**
Замечания: Я работал над проектом, который требовал сырой PHP, но все же
хотел использовать Swagger. Поэтому вместо создания моделей я использовал это
Техника для создания вложенных параметров.
Изменить 1: я не знаю, в чем проблема, пользовательский интерфейс, как и ожидалось, но во время выполнения запроса, нет никаких данных в сообщении или полезной нагрузки.
Редактировать 2: Преобразованный Get to Post.
Отлично работает с file_get_contents("php://input")
Других решений пока нет …