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.
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.
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.
The returned JSON response has:
question: Question textselections: 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.
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.
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)The BSD 3-Clause license, the same as the Go.