GraphQL實現有效地公開堆棧溢出資源(評論,帖子,答案,投票等)
stack Exchange沒有GraphQl端點,所以我做了一個。由於構建模式,上面的實時API目前處於POC模式。目前,它正在從https://health.stackexchange.com/中提供內容,並且每週更新,隨著管道和INFRA的加強和建造,它將隨附更多。預計延遲量最小,因為目前這是在應用程序服務中託管的,該服務將在低使用期間旋轉。如果發生這種情況,請耐心等待,操場/請求在第一個“喚醒”之後就會燃燒。如果這有一定的吸引力,將會增加可用性。
在本地運行:
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 | 細繩 | DB主機 | Localhost |
SCHEMA | 細繩 | 應用DB模式 | 斯塔克 |
UNAME | 細繩 | 應用DB用戶名信譽 | Appuser |
PASS | 細繩 | 應用DB密碼信貸 | SuperSecret123 |
SERVER應為MySQL DB的主機名。為了提供內容,GraphQL Server期望填充的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 Server。
啟動服務器:
go run cmd/server.go
TODO我可能會進行一些改進並換成諸如彈性後端之類的東西,但現在是早期的設置。由Stack Exchange發布的XML轉儲使用與Spring Batch編寫的作業在時間表上導入到索引關係後端中。 GraphQL Server從此後端讀取以揭示堆棧交換數據。 
? Sai Nimmagadda
該項目目前正在構建模式中。歡迎貢獻,問題和功能請求!
請隨時檢查問題頁面。
如果這個項目對您有所幫助,請給!
版權所有©2020 Sai Nimmagadda。
該項目已獲得MIT許可。
此讀數是由readme-md generator生成的❤️