Реализация GraphQL для эффективного выявления ресурсов переполнения стека (комментарии, сообщения, ответы, голоса и т. Д.)
Обмен стека не имеет конечной точки GraphQL, поэтому я сделал ее. Живой API выше, пока в режиме POC пока построена схема. В настоящее время он обслуживает контент с https://health.stackexchange.com/ и обновляется еженедельно, а также больше, поскольку трубопроводы и инфра будут созданы и созданы. Ожидайте минимальную сумму задержки, потому что это в настоящее время размещено в службе приложений, которая будет вращаться в течение периодов низкого уровня. Если это произойдет, пожалуйста, будьте терпеливы, и игровая площадка/запросы должны прийти после первого «пробуждения». Если это получит какую -то тягу, доступность будет увеличена.
Бежать на местном уровне:
docker-compose up
и посетите http: // localhost: 8080, чтобы начать использовать игровую площадку или нажмите на конечную точку с некоторыми запросами! Например, чтобы получить информацию на страницах с наивысшим количеством вопросов и ответов в подключении:
query postsPagination {
allPostsCursor(first: 10, where: { order: { field: votes, order: DESC } }) {
pageInfo {
hasNextPage
hasPreviousPage
}
edges {
cursor
node {
score
title
body
comments {
userId
text
}
answers {
score
body
comments {
userDisplayName
text
}
}
}
}
}
}
Сервер также доступен в качестве контейнера Docker, предоставленный отдельной бэкэнд: существует: существует отдельная бэкэнд:
docker run -e SERVER='<dbhost>' -e UNAME='<dbUname>' -e PASS='<dbPass>' snimmagadda/stack-exchange-graphql-server:latest
или бежать из источника:
go run cmd/server.goНекоторые переменные среды должны быть установлены на местном уровне
| Ключ | Тип | Описание | Пример |
|---|---|---|---|
SERVER | Нить | Хост БД | местный хост |
SCHEMA | Нить | Приложение DB схема | Стейк |
UNAME | Нить | Приложение DB имя пользователя | Appuser |
PASS | Нить | Приложение DB Password Cred | SuperSecret123 |
SERVER должен быть именем хоста MySQL DB. Чтобы обслуживать контент, сервер GraphQL ожидает заполненной схемы stacke .
TODO: настраиваемые параметры ...
go build cmd/server.goВарианты разработки легко гибки с более оптимизированными маршрутами ... пока доступно следующее:
Запустите бэкэнд только с помощью Docker (или настройка и используйте docker-compose.yml )
docker run --name test-mysql -e MYSQL_ROOT_PASSWORD=password -e MYSQL_ROOT_USER=root -e MYSQL_PASSWORD=password -d -p 3306:3306 mysql:5.7.26
Здесь существуют строки ~ 1K в качестве вставки в вашу схему.
Создайте (или скопируйте) файл .env с переменными в таблице выше установленного для настройки локального сервера GraphQL.
Запустить сервер:
go run cmd/server.go
TODO Я, вероятно, собираюсь сделать некоторую уточнение и обмениваться чем -то вроде эластичного бэкэнда, но пока вот ранняя установка. XML -дампы, опубликованные по обмену Stack Exchange, импортируются в индексированную реляционную бэкэнд с использованием задания, написанной с помощью Spring Parath в расписании. Сервер graphQL считывает из этого бэкэнда, чтобы выявить данные обмена стека. 
? Сай Ниммагадда
Этот проект в настоящее время находится в режиме сборки. Взносы, проблемы и запросы на функции приветствуются!
Не стесняйтесь проверять страницу проблем.
Дайте ️, если этот проект помог вам!
Copyright © 2020 Sai Nimmagadda.
Этот проект лицензирован MIT.
Этот Readme был сгенерирован с ❤ readme-md-генератором