Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Microservice for fetching the latest posts of Medium with GraphQL.

License

NotificationsYou must be signed in to change notification settings

evenchange4/micro-medium-api

Repository files navigation

Microservice for fetching the latest posts of Medium with GraphQL.

Further reading:[中文] Microservice 產品交付 - Dockerize 與 Zeit JavaScript 跨平台解決方案

TravisCodecov StatusGithub Tagnode

Dependency StatusdevDependency StatuspeerDependency StatusGreenkeeper badgeprettierlicense

Feature

  • Use GraphQL.
  • Dataloader for per-request memory cache.
  • Rate-limiting 1 requests per sec.

How To Use

a. Deploy to Now.sh

One click deploys to △ now

Deploy to now

b. Binary executable

Download from GitHublatest release.

$ ORIGIN=$YOUR_DOMAIN \  ./micro-medium-api-macos --port $PORT

Note: You can run it without Node.js installed.

c. Docker image

Pull fromdockerhub.

Docker Automated buildDocker PullsDocker Size

$ docker pull evenchange4/micro-medium-api:latest$ docker run --rm -it \  -p $PORT:3000 \  -e "ORIGIN=YOUR_DOMAIN" \  evenchange4/micro-medium-api:latest

d. NPM CLI

Install fromnpm.

npm downloadsnpm

$ npm i micro-medium-api -g $ ORIGIN=$YOUR_DOMAIN \  micro-medium-api --port $PORT

Note: You should use Node.js >= 8 .

API

Environment variables

ENVRequiredDefaultDescription
ORIGIN*Setupaccess-control-allow-origin for CORS.

CLI arguments

$ micro-medium-api --helpUsage: micro-medium-api <command> [options] Options:  -p, --port     HTTP server PORT                                [default: 3000]  -h, --help     Show help                                             [boolean]  -v, --version  Show version number                                   [boolean]

GraphQL endpoint

  • [GET] /graphql
  • [POST] /graphql

Demo

Note: You should deploy your own service for production usage.

Technology Stacks

  • Micro: Asynchronous HTTP microservices.
  • Micro-router: A tiny and functional router for Zeit's Micro.
  • Micro-ratelimit: Rate-limiting middleware for micro.
  • Graphql-tools: 🔧 Build and mock your GraphQL.js schema using the schema language.
  • Graphql-server-micro: 🌍 GraphQL server
  • Dataloader: DataLoader is a generic utility to be used as part of your application's data fetching layer to provide a consistent API over various backends and reduce requests to those backends via batching and caching.
  • Dockerhub: Automatically deploy docker image.
  • Now.sh: Realtime global deployments
  • Pkg: Package your Node.js project into an executable
  • Travis: CI

Developer Guide

Requirements

  • node >= 8.5.0
  • npm >= 5.3.0
  • yarn >= 1.0.2
$ git clone https://github.com/evenchange4/micro-medium-api.git$ yarn install --pure-lockfile$ yarn run dev # dev server$ yarn start   # prod server$ yarn run pkg # output binary files

Test

$ yarn run format$ yarn run eslint$ yarn run test:watch

Docker

$ docker build -t micro-medium-api .# Push to dockerhub$ git push

Note: Multi-stage builds are a new feature in Docker 17.05.

Github release / NPM release

$ npm version patch$ git push

Inspiration

CONTRIBUTING

  • ⇄ Pull requests and ★ Stars are always welcome.
  • For bugs and feature requests, please create an issue.
  • Pull requests must be accompanied by passing automated tests ($ yarn run test).

MIT:http://michaelhsu.mit-license.org

About

Microservice for fetching the latest posts of Medium with GraphQL.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp