Это прозвучало для меня пару раз за последнюю неделю, и я чувствовал, что должны быть какие-то лучшие практики или рекомендации, которые мне не хватает. У нас есть приложение Rails, для которого мы хотели бы создать API. Мы начали со стандартной вещи:
...
respond_to :json
def show
@post = Post.find(params[:id])
respond_with @post
end
...
Такой элегантный, но возвращающийся в реальный мир ... Наши взгляды на главном сайте имеют некоторую условную логику для отображения копий / сообщений, к которым хотят получить доступ пользователи API. Это кажется разумным требованием, они не хотят жестко кодировать копию в приложении-потребителе (iPhone), так как они будут выпускаться нечасто, и мы бы хотели обновлять сообщения в нашем цикле. Вот составленный пример кода вида:
<% if @post.profanity_detected? %>
This post is under review and it'll go live within <%= @post.review_period %> days. Blah blah additional copy...
<% else %>
Your post for <%= @post.title %> looks great...
<% end %>
Как люди справляются с такого рода требованиями?
1) Я могу добавить методы к моделям, которые возвращают соответствующий обмен сообщениями для @ post.profanity_message_text и: включать их, когда мы сериализуем модели для API. Тем не менее, в некоторых случаях существует большое количество копий, которые на самом деле не кажутся принадлежащими модели.
2) Я могу добавить файл show.json.erb, который формирует ответ json со всеми включенными сообщениями, но кажется, что в итоге он продублирует большое количество кода и будет довольно утомительным.
Кто-нибудь сталкивался с моделью, которой он действительно доволен?
Спасибо за предложения!