Поэтому мы, как и многие компании, хотим вести блог. Мы используем это как маркетинговый инструмент как для наших разработчиков, так и для клиентов. 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;
}

удачной интеграции с блогом! :-)