Rails로 기본 정보 기술자 시험의 과거 문제 사이트를 만든다(5:API편)
7034 단어 기본 정보 기술자 시험루비Railsapi
소개
유루~쿠 배운다. 모두의 웹 공부 커뮤니티. "뉴~부루회"를 운용중입니다.
h tps : // 네 w 부루. 기주 b. 이오/
거기서, 뭔가 교육용의 컨텐츠를 갖고 싶어~라고 생각하고, 이번 기획을 스타트했습니다!
Rails에서 기본 정보 기술자 시험의 과거 문제 사이트를 만듭니다!
최종 목표
히스토리
1: 구축편
htps : // 코 m / 네 w 부루 / 있어 ms / 에 d59f47 아 c645b19620f6
2:일본어화(i18n)편
htps : // 이 m/네 w부루/있어 ms/4f12fdb61bf6cd601545
3:부모와 자식 관계, 등록편
htps : // 코 m / 네 w 부루 / 있어 ms / f2 아 20289
4:부모와 자식 관계, 참조편
h tps:// 퀵했다. 작은 m / 네 w 불 / MS / 51b11BD02691 그림 FC2 c0d
5: API편
본 페이지
6:SlackBOT편
htps : // 이 m / 네 w 부루 / 있어 ms / 감히 b9 아 cb453이다 786bd59
7 : Heroku 배포 ~ 자동화 편
htps : // 이 m / 네 w 부루 / 있어 ms / 0 아 8 ㄴ b02 에 1 8 c8 737 c7
이번에 할 일
API 만들기
1. gem 'jbuilder'를 추가합니다.
JSON을 반환하는 API로 만들기 위해 JSON에 대한 GEM을 추가합니다.
./Gemfilegem 'jbuilder', '~> 2.5'
2. API 입을 만듭니다
routes.rb에 다음을 추가합니다.
config/routes.rb # API用(JSONを返すため、formatを指定する)
namespace :api, { format: 'json' } do
namespace :v1 do # APIのため、バージョンを意識して作る
get 'questions/:id', to: 'questions#show'
end
end
3. API용 컨트롤러를 추가합니다.
API용, V1용으로 나누기 때문에, 디렉토리도 그에 맞추어 계층을 작성합니다.
app/controllers/api/v1/questions_controller.rbclass Api::V1::QuestionsController < ApplicationController
def show
@question = Question.find(params[:id])
end
end
4. View에서 JSON을 반환하도록 설정합니다.
app/views/api/v1/questions/show.json.jbuilderjson.data do
json.question @question, :category1, :category2, :category3, :msg
json.answers do
json.array! @question.answers, :msg, :correct
end
end
jbuilder의 사용법은, 이쪽 근처를 참조로 하면 좋을까 생각합니다.
htps : // 코 m / 료 / ms / 06cb0d4 아 7b6527b3645
5. 확인합니다.
먼저 화면에서 확인합니다.
http://localhost:3000/questions/1 로 이동합니다.
API용 URL에 액세스합니다.
http://localhost:3000/api/v1/questions/1 로 이동합니다.
※마지막 1은 id입니다.
이런 느낌의 문자열이 표시되면 OK입니다!
응답 결과{"data":{"question":{"category1":"あ","category2":"い","category3":"う","msg":"え"},"answers":[{"msg":"お","correct":true},{"msg":"か","correct":false}]}}
이번에는 여기까지
고마워요!
다음번에는, 랜덤 취득용의 API를 추가해, 문제집 API같게 할게!
Reference
이 문제에 관하여(Rails로 기본 정보 기술자 시험의 과거 문제 사이트를 만든다(5:API편)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/newburu/items/89f9f847a2648bdd006c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
gem 'jbuilder', '~> 2.5'
# API用(JSONを返すため、formatを指定する)
namespace :api, { format: 'json' } do
namespace :v1 do # APIのため、バージョンを意識して作る
get 'questions/:id', to: 'questions#show'
end
end
class Api::V1::QuestionsController < ApplicationController
def show
@question = Question.find(params[:id])
end
end
json.data do
json.question @question, :category1, :category2, :category3, :msg
json.answers do
json.array! @question.answers, :msg, :correct
end
end
{"data":{"question":{"category1":"あ","category2":"い","category3":"う","msg":"え"},"answers":[{"msg":"お","correct":true},{"msg":"か","correct":false}]}}
고마워요!
다음번에는, 랜덤 취득용의 API를 추가해, 문제집 API같게 할게!
Reference
이 문제에 관하여(Rails로 기본 정보 기술자 시험의 과거 문제 사이트를 만든다(5:API편)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/newburu/items/89f9f847a2648bdd006c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)