2016-05-20 2 views
2

Я использую Swagger PHP, и большинство определений легко определить, но у меня возникла проблема с определенной частью данных, которая не является частью отдельного класса, а вместо этого ассоциативным массивом.Swagger PHP - как определить вложенное свойство?

Ответа JSON Я хочу показать (упрощенно на этот вопрос):

{ 
"id": 1, 
"status": "published", 
"gps": { 
    "lat": "0.00000000", 
    "lng": "0.00000000" 
} 

id и status достаточно легко определить, однако gps является проблемой, так как нет индивидуального класса, чтобы определить его in, это массив внутри модели. Можно ли определить этот массив без создания пустого класса?

Комментарии в файле модели в настоящее время:

/** 
* @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" 
    *) 
    */ 

} 

ответ

3

Столкнувшись точно такой же вопрос, и решить его сегодня!

Это для Форс 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" 
* ) 
*) 
*/ 
/** 

The output is as below

Примечание: Я работал над проектом, который требовал сырой PHP, но все же хотел использовать Swagger. Поэтому вместо создания моделей я использовал эту технику для создания вложенных параметров.


Edit 1: Я не знаю, в чем проблема, пользовательский интерфейс, как ожидается, но, делая запрос, нет никаких данных в записи или полезной нагрузки.

Редактировать 2: Конвертировать Подписаться на сообщение. Работы отлично с file_get_contents("php://input")

Смежные вопросы