2015-07-23 2 views
3

Я создаю RESTful API с Yii2, но имею некоторые вопросы относительно поддержки HATEOAS. Запросы выводят заголовки разбиения на страницы и включают заголовок HATEOAS.Заголовок HATEOAS как строка

Однако заголовок HATEOAS содержит все ссылки как одну длинную строку. Это не очень полезно для потребителя. Это стандарт? Есть ли способ изменить формат в Yii на что-то более удобное в обращении?

HATEOAS Header

+0

Я уверен, что это стандарт, GitHub использует тот же формат. Получаете ли вы результаты в XML? – Beowulfenator

+0

Нет, тело ответа - JSON. – Dubby

ответ

1

ли следующий хорошо выглядеть?

"_links": { 
    "self": { 
     "href": "http://localhost/users?page=1" 
    }, 
    "next": { 
     "href": "http://localhost/users?page=2" 
    }, 
    "last": { 
     "href": "http://localhost/users?page=50" 
    } 
} 

Если это так, вы можете легко иметь такие ссылки. Убедитесь, что модель данных реализует Linkable интерфейс, а затем реализовать getLinks() метод:

class User extends ActiveRecord implements Linkable 
{ 
    public function getLinks() 
    { 
     return [ 
      Link::REL_SELF => Url::to(['user/view', 'id' => $this->id], true), 
     ]; 
    } 
} 

Serializer будет автоматически добавлять "_links" к ответу.

Дополнительная информация here.