
Поэтому мы, как и многие компании, хотим вести блог. Мы используем это как маркетинговый инструмент как для наших разработчиков, так и для клиентов. Medium казался правильным выбором, так как они являются своего рода стандартом для ведения блога и предлагают некоторые приятные функции.
Но мы также хотим интегрировать наш блог в наш веб-сайт. По крайней мере, в дизайне нашего сайта.
С помощью среды вы можете немного оформить свою страницу публикации, но нам этого было недостаточно. Мы хотим иметь полный контроль над тем, как выглядит наш блог.
Итак, мы рассмотрели вариант ?format=json в среде. Добавьте это к URL-адресу вашего журнала, и вы получите содержимое блога в формате json. Идеально подходит для включения этого контента на ваш собственный веб-сайт!
Но мы хотели еще большего. Мы хотели решение только на стороне клиента, чтобы нам не пришлось писать серверную часть. Теперь мы не можем получить json со среды в нашем браузере из-за заголовков CORS.
Мы придумали очень простое решение, которое представляет собой прокси, добавляющий необходимые заголовки. Мы делаем это через NGINX, используя следующую конфигурацию:
server {
listen 80 default_server;
location / {
add_header Access-Control-Allow-Origin "*";
proxy_set_header Origin "";
proxy_pass http://medium.gameye.com/gameye/;
}
}
И теперь мы можем использовать содержимое блога непосредственно из наших клиентских приложений.
Или, ну, json, который вы получаете от среды, на самом деле немного ненадежный, он начинается с какого-то мусора. По какой-то причине json имеет префикс с каким-то javascript и закрывающим тегом x, поэтому мы обрезаем все до первого {. Наш код для чтения сообщений в блоге выглядит примерно так:
async function fetchBlogData(blogName) {
const response = await fetch("http://blog.gameye.com/" + blogName + "?format=json");
const textData = await response.text();
const data = JSON.parse(textData.substring(textData.indexOf("{")));
return data;
}
удачной интеграции с блогом! :-)