2016-08-03 2 views
0

Я работаю над чванством UI в PHP и я пытаюсь отобразить JSON как нижеКак сопоставить этот массив json in swagger ui?

{ 
    "category": { 
    "id": 0, 
    "name": "string" 
    } 
} 

Я попробовал его с чванством Ui демок, но не может получить отображение как выше JSON, как можно Я получаю это json mapping, что бы было аннотация для этого? пожалуйста, помогите

Мой класс развязность является

/** 
    * @SWG\Definition(@SWG\Xml(name="MyFl")) 
    */ 
    class MyFl 
    { 

     /** 
    * @SWG\Property(format="int64") 
    * @var int 
    */ 
    public $id; 

    /** 
    * @SWG\Property(example="doggie") 
    * @var string 
    */ 
    public $name; 

    /** 
    * @SWG\Property(type="Category") 
    */ 
    public $category; 

    } 

И мой пост апи аннотация:

/** 
    * @SWG\Post(
    * path="/docs/fl", 
    * tags={"MY"}, 
    * summary="Insert fl info", 
    * operationId="FL", 
    * produces={"application/xml","application/json"}, 
    * @SWG\Parameter(in="body",name="body",description="Insert fl info",required=true,@SWG\Schema(ref="#/definitions/MyFl") 
    * ), 
    * @SWG\Response(response="default", description="successful operation") 
    *) 
    */ 

И это я получаю модель схемы, как:

enter image description here

enter image description here

Но я хочу JSON схемы, как:

{ 
     "category": { 
     "id": 0, 
     "name": "string" 
     } 
    } 

Пожалуйста, помогите мне ..

+0

Вы должны опубликовать то, что вы пробовали до сих пор. Тогда мы сможем помочь вам найти правильный ответ. Таким образом, вы лучше поймете ответ, чем если бы вам дали ответ. – Jason

+0

ok @Jason ...... –

ответ

1

ОТВЕТСТВЕННОСТИ: Это было долгое время, так как я работал с чванством-PHP аннотаций, так что я Не уверен, что это лучший способ сделать это. Мой опыт больше в JSON Schema, а не в swagger-php.

Ваша структура данных фактически представляет собой два объекта. Первый - это объект с одним свойством: «категория». Тогда значение «категория» - это другой объект с двумя свойствами: «id» и «name». Я уверен, что вам нужно смоделировать их как два отдельных объекта.

/** 
* @SWG\Definition(@SWG\Xml(name="MyFl")) 
*/ 
class MyFl 
{ 

    /** 
    * @SWG\Property(type=Category) <-- Don't know if this is the right way to reference another schema. You will have to check the documentation. 
    */ 
    public $category; 

} 

/** 
* @SWG\Definition(@SWG\Xml(name="Category")) 
*/ 
class Category 
{ 

    /** 
    * @SWG\Property(format="int64") 
    * @var int 
    */ 
    public $id; 

    /** 
    * @SWG\Property(example="doggie") 
    * @var string 
    */ 
    public $name; 

} 

Надежда, что помогает.

+0

извините, но не работает, это дает мне пустое MyFl {} –

+0

Это имеет смысл, если я неправильно понял синтаксис для '@SWG \ Property (type = Category)' (как я прокомментировал) , Я думаю, что если вы выберете правильный синтаксис для ссылки на категорию, это может сработать. Может быть, есть атрибут 'ref'? Что-то вроде '@SWG \ Property (ref =" #/определения/Категория ")'? – Jason

+0

я удалил ваш комментарий, а затем попробовал –

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