Сколько данных нужно вложить в вызов GET API? - PullRequest
0 голосов
/ 07 мая 2020

Рассмотрение аналогичного примера: если у вас есть компании, а в компаниях есть подразделения, а у подразделений есть сотрудники, когда вы делаете запрос GET для компании, как вы решаете, какие данные нужно встраивать? Например, вы можете вернуть компанию с вложенными подразделениями и людьми. Или вы можете сделать 3 отдельных вызова.

Я немного использовал GitHub API, и они, кажется, встраивают некоторые данные, предоставляя их не массив. Например, когда вы запрашиваете репо, в него может быть встроен владелец, но не выдает запросы и запросы на вытягивание. Как они решили это?

Кроме того, похоже, что в зависимости от вашего хранилища данных SQL vs No SQL пробег может отличаться здесь.

Найдено это пример m, но это не совсем то же самое.

1 Ответ

0 голосов
/ 07 мая 2020

когда вы делаете GET-запрос для компании, как вы решаете, какие данные вставлять?

Я думаю, вы спрашиваете что-то вроде «при разработке ресурса, как вы решаете, какие информация принадлежит представлению, и какая информация связана? "

Ответ на этот вопрос - обратить внимание на тот факт, что кеширование происходит на уровне ресурсов - target-uri ключ кеша. Когда мы аннулируем ресурс, мы аннулируем все его представления.

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

Смешивание данных, которые изменяются поминутно, с данными с ожидаемым периодом полураспада в год, что затрудняет разработку разумной политики кэширования. Так что, возможно, имеет смысл разделить информацию на кучи с одинаковыми жизненными циклами и иметь отдельный ресурс для каждого. ) не очень часто меняется; содержимое страницы (вопросы, ответы, комментарии) меняется с большей частотой. Общая потребляемая пропускная способность сети, вероятно, будет значительно ниже, если вы создадите ссылку на большие, медленно меняющиеся элементы дизайна.

(Кроме того, если вы действительно используете ссылки, у вас есть возможность перемещать различные ресурсы независимо - перемещая содержимое CDN, по-разному маршрутизирующие запросы с высоким и низким приоритетом и т. д.).

...