javascript — вычисляются ли поля в json API?

Мне интересно, в какой степени мы должны добавить в API значения, которые можно рассчитать из необработанных данных и дополнительной доступной информации (из сеанса браузера, пользовательского интерфейса … или чего-либо еще)

Например, у нас может быть API, возвращающий этот JSON:

{
ownder_id: '123',
canAddComment: true,
etc...
}

Это дает нам значение «canAddComment» напрямую.
Или мы могли бы иметь только это:

{
ownder_id: '123',
etc...
}

Где комментарии могут быть рассчитаны из owner_id, Например, пользователь может добавлять комментарии, если сеанс owner_id отличается от полученного от API.

Мы могли бы сделать это в Javascript вместо этого:

//supposing we have a session object with our browser session values
var params = {owner_id: session.owner_id};
$.post(apiURL, params, function(data){
var result = JSON.parse(data);

//processing the data
result["canAddComments"] = result.owner_id !== session.owner_id;

//do whatever with it
});

Какой будет лучший подход? Какая рекомендация в таких случаях?

0

Решение

Я не совсем уверен, что вы хотите знать. Но моя первая реакция — вы делаете из этого функцию.

// constructor
function Comment() {
this.owner_id;
this.canAddComment = function() {
return session.user_id === this.owner_id;
}
}

var session = {
user_id: 22,
name: 'Kevin'
};

var my_comment = new Comment();
my_comment.owner_id = 15;
if(my_comment.canAddComment()) {
$.ajax({
// now read the form and submit the data ...
})
}
else {
alert('Only the author of this message can update ...');
}

РЕДАКТИРОВАТЬ:

Мой вопрос был в основном, если это лучше рассчитать на стороне сервера или рассчитать после получения данных API.

Не уверен, что есть общий ответ. Несколько аргументов: если вы хотите, чтобы метод был секретным, вы должны сделать это на стороне сервера. В других случаях, я думаю, имеет смысл позволить клиентскому ПК использовать его вычислительную мощность.

Хорошо, один пример: сортировка. Допустим, есть таблица, полная данных; щелчок по голове сортирует таблицу по этому столбцу. Имеет ли смысл отправлять все данные на сервер, разрешать ему сортировать таблицу и возвращать массив ключей? Нет, я думаю, что имеет смысл позволить клиенту обрабатывать это.
http://tablesorter.com/docs/

Аналогично Google Maps: вы перетаскиваете маркер в какое-то место, затем программа должна рассчитать 5 ближайших автобусных остановок. Ну, очевидно, вы рассчитываете все это на стороне клиента.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]