Rails+Grape을 사용하여 WebAPI를 만듭니다.(②Grape swagger를 사용하여 결과를 출력합니다.)
5687 단어 Rails
개시하다
7월부터 웹 엔지니어가 돼 연수의 일환으로 사내 큐타 제작을 진행했다.
자사가 개발한 시스템에도 웹API를 적용해 예행 연습으로 활용하고, 자사 내 큐타에서도 웹API를 제작한 만큼 제작 과정을 3부로 나눠 설명하려 한다.
User.all
에 대한 웹API를 요약했다.여기서 Rails로 WebAPI를 만들면서 JSON으로 보내온 결과를 어떻게 확인을 했냐면요.
이번에는 그래프.스웨거가 보낸 JSON 형식의 데이터를 출력할 때까지 정리하고 싶습니다.
Gemfile
우선gem를 설치합니다.gem 'grape-swagger', group: :development
gem 'grape-swagger-rails', group: :development
root.rb
설치 후 루트 노드(최상위 WebAPI의 일반적인 설정을 하는 파일이라고 할 수 있습니까?)를 입력합니다.grape-swagger
에서는 swagger에 API의 이름과 설명문을 기재할 수 있다.또 다른 옵션이 있으니 궁금하신 분들은 참조여기(참조)해주세요.
api/root.rb#gem grape-swaggerの読み込み(本番環境以外)
require 'grape-swagger' unless Rails.env.production?
class Root < Grape::API
prefix 'api'
format :json
mount V1::Root
#本番環境以外では以下記述を反映させる。
if defined? GrapeSwaggerRails
add_swagger_documentation(
info: {
title: 'SAMPLE_API', #このAPIの名称
description: 'API' #説明文
}
)
end
end
routes.rb
swagger에 액세스할 URL을 설정합니다.
이 때의 URL은 "docs"라고 기록되어 있습니다. 마음에 드는 URL을 설정하십시오.
routes.rbRails.application.routes.draw do
mount Root => '/'
mount GrapeSwaggerRails::Engine => '/docs'
end
swagger.rb
다음은 스웨거 자체의 각종 설정이다.add_swagger_documentation
에 아래config/initializers/
를 놓으십시오.
swagger.rbunless Rails.env.production?
# 完成形のヘッダにあるタイトルを示します。
GrapeSwaggerRails.options.app_name = 'API_TUTORIAL_APP'
# このURLは固定です。
GrapeSwaggerRails.options.url = '/api/swagger_doc.json'
GrapeSwaggerRails.options.before_action do
# 完成形のヘッダにあるタイトルをクリックすることによって開発中のWebアプリに遷移してくれます。
# localhost:3000/docs (クリックすると)=> localhost:3000 に遷移。
GrapeSwaggerRails.options.app_url = request.protocol + request.host_with_port
end
end
완성
이후localhost:xxxxx/docs에 로그인하면 완성됩니다.
다음에는 WebAPI 로그인을 통해 로그아웃 가능 그렇게 하고 싶어요!
참고 자료
gem ruby-grape/grape-swagger
gem ruby-grape/grape-swagger-rails
Reference
이 문제에 관하여(Rails+Grape을 사용하여 WebAPI를 만듭니다.(②Grape swagger를 사용하여 결과를 출력합니다.)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/shicchi7913/items/b2c6bb5bc33a11423a40
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
gem 'grape-swagger', group: :development
gem 'grape-swagger-rails', group: :development
설치 후 루트 노드(최상위 WebAPI의 일반적인 설정을 하는 파일이라고 할 수 있습니까?)를 입력합니다.
grape-swagger
에서는 swagger에 API의 이름과 설명문을 기재할 수 있다.또 다른 옵션이 있으니 궁금하신 분들은 참조여기(참조)해주세요.api/root.rb
#gem grape-swaggerの読み込み(本番環境以外)
require 'grape-swagger' unless Rails.env.production?
class Root < Grape::API
prefix 'api'
format :json
mount V1::Root
#本番環境以外では以下記述を反映させる。
if defined? GrapeSwaggerRails
add_swagger_documentation(
info: {
title: 'SAMPLE_API', #このAPIの名称
description: 'API' #説明文
}
)
end
end
routes.rb
swagger에 액세스할 URL을 설정합니다.
이 때의 URL은 "docs"라고 기록되어 있습니다. 마음에 드는 URL을 설정하십시오.
routes.rbRails.application.routes.draw do
mount Root => '/'
mount GrapeSwaggerRails::Engine => '/docs'
end
swagger.rb
다음은 스웨거 자체의 각종 설정이다.add_swagger_documentation
에 아래config/initializers/
를 놓으십시오.
swagger.rbunless Rails.env.production?
# 完成形のヘッダにあるタイトルを示します。
GrapeSwaggerRails.options.app_name = 'API_TUTORIAL_APP'
# このURLは固定です。
GrapeSwaggerRails.options.url = '/api/swagger_doc.json'
GrapeSwaggerRails.options.before_action do
# 完成形のヘッダにあるタイトルをクリックすることによって開発中のWebアプリに遷移してくれます。
# localhost:3000/docs (クリックすると)=> localhost:3000 に遷移。
GrapeSwaggerRails.options.app_url = request.protocol + request.host_with_port
end
end
완성
이후localhost:xxxxx/docs에 로그인하면 완성됩니다.
다음에는 WebAPI 로그인을 통해 로그아웃 가능 그렇게 하고 싶어요!
참고 자료
gem ruby-grape/grape-swagger
gem ruby-grape/grape-swagger-rails
Reference
이 문제에 관하여(Rails+Grape을 사용하여 WebAPI를 만듭니다.(②Grape swagger를 사용하여 결과를 출력합니다.)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/shicchi7913/items/b2c6bb5bc33a11423a40
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Rails.application.routes.draw do
mount Root => '/'
mount GrapeSwaggerRails::Engine => '/docs'
end
다음은 스웨거 자체의 각종 설정이다.
add_swagger_documentation
에 아래config/initializers/
를 놓으십시오.swagger.rb
unless Rails.env.production?
# 完成形のヘッダにあるタイトルを示します。
GrapeSwaggerRails.options.app_name = 'API_TUTORIAL_APP'
# このURLは固定です。
GrapeSwaggerRails.options.url = '/api/swagger_doc.json'
GrapeSwaggerRails.options.before_action do
# 完成形のヘッダにあるタイトルをクリックすることによって開発中のWebアプリに遷移してくれます。
# localhost:3000/docs (クリックすると)=> localhost:3000 に遷移。
GrapeSwaggerRails.options.app_url = request.protocol + request.host_with_port
end
end
완성
이후localhost:xxxxx/docs에 로그인하면 완성됩니다.
다음에는 WebAPI 로그인을 통해 로그아웃 가능 그렇게 하고 싶어요!
참고 자료
gem ruby-grape/grape-swagger
gem ruby-grape/grape-swagger-rails
Reference
이 문제에 관하여(Rails+Grape을 사용하여 WebAPI를 만듭니다.(②Grape swagger를 사용하여 결과를 출력합니다.)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/shicchi7913/items/b2c6bb5bc33a11423a40
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
gem ruby-grape/grape-swagger
gem ruby-grape/grape-swagger-rails
Reference
이 문제에 관하여(Rails+Grape을 사용하여 WebAPI를 만듭니다.(②Grape swagger를 사용하여 결과를 출력합니다.)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/shicchi7913/items/b2c6bb5bc33a11423a40텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)