feserver

command module
v0.0.0-...-2ba3125 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 2, 2017 License: BSD-3-Clause Imports: 6 Imported by: 0

README

feserver

A server providing F.E. examination questions which have been appeared in the past. The past questions are obtained from http://www.fe-siken.com. Thanks to the great Web site!

feserver can also serve the questions from the other IPA examinations such as A.P. !

IMPORTANT : Please use feserver personally. Copyrights for the past questions are reserved by http://www.fe-siken.com and IPA.

Installation

To install the command, run:

go get -u https://github.com/mzki/feserver

To start server process, just type

feserver

And then you will see the JSON response by

curl http://localhost:8080/r-question.json

The JSON response contains F.E. question and its answer. For more detail see JSON Response section.

Web API

feserver provides the following Web APIs:

  • [server-address]/[sub-address]/r-question.json

It returns json response which contains the question randomly selected.

  • [server-address]/[sub-address]/question.json?year=[year]&season=[haru|aki]&no=[no]

It returns json response which contains the question specified by the query parameters.

JSON Response

The returned JSON response has:

  • question: Question text
  • selections: Selections for Answer.
  • answer: Answer Character, ア, イ, ウ, エ.
  • explanation: Explanation for the Answer.
  • hasImage: question, selections, or answer contain some images. These might not be represented by only text.
  • url: Source URL in which the question is retrieved.
  • version: version for the json data structure.
  • error: Error message. Empty message indicates non-error.

Configuration

By default, feserver initially loads config.toml at the feserver's repository under GOPATH. config.toml defines question source locations for serving the content. See config.toml for more detail.

Library

src directory provides the Go library for getting the F.E. questions or others.

Example:

// make context with timeout for 3 second.
ctx := context.WithTimeout(context.Background(), 3*time.Second)

// get src.Response for the question randomly selected.
res, _ := src.GetRandom(ctx, src.MaxQueryRange)

You can create src.Getter with arbitrary source location.

// construct Getter with A.P. examination source and 
// interval time for the request
g := src.NewGetter(src.AP, src.LeastIntervalTime)

// get A.P. question at H29, Spirng, No. 10.
res, _ := g.Get(context.Background(), Query{29, src.SeasonSpring, 10})

// get A.P. question randomly selected
res, _ = g.GetRandom(context.Background(), src.MaxQueryRange)

License

The BSD 3-Clause license, the same as the Go.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
src
js

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL