{"id":37464,"date":"2023-11-14T06:44:09","date_gmt":"2023-11-14T06:44:09","guid":{"rendered":"https:\/\/www.railscarma.com\/?p=37464"},"modified":"2023-11-14T07:51:28","modified_gmt":"2023-11-14T07:51:28","slug":"rails%e3%81%a7graphql-api%e3%82%92%e6%a7%8b%e7%af%89%e3%81%99%e3%82%8b-%e3%82%af%e3%82%a4%e3%83%83%e3%82%af%e3%83%bb%e3%82%bb%e3%83%83%e3%83%88%e3%82%a2%e3%83%83%e3%83%97%e3%83%bb%e3%82%ac%e3%82%a4","status":"publish","type":"post","link":"https:\/\/www.railscarma.com\/ja\/%e3%83%96%e3%83%ad%e3%82%b0\/rails%e3%81%a7graphql-api%e3%82%92%e6%a7%8b%e7%af%89%e3%81%99%e3%82%8b-%e3%82%af%e3%82%a4%e3%83%83%e3%82%af%e3%83%bb%e3%82%bb%e3%83%83%e3%83%88%e3%82%a2%e3%83%83%e3%83%97%e3%83%bb%e3%82%ac%e3%82%a4\/","title":{"rendered":"Rails \u3067\u306e GraphQL API \u306e\u69cb\u7bc9: \u30af\u30a4\u30c3\u30af \u30bb\u30c3\u30c8\u30a2\u30c3\u30d7 \u30ac\u30a4\u30c9"},"content":{"rendered":"<div data-elementor-type=\"wp-post\" data-elementor-id=\"37464\" class=\"elementor elementor-37464\" data-elementor-post-type=\"post\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-8206016 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"8206016\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-5135998\" data-id=\"5135998\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-857e792 elementor-widget elementor-widget-text-editor\" data-id=\"857e792\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>API\u7528\u306e\u30e2\u30c0\u30f3\u306a\u30af\u30a8\u30ea\u8a00\u8a9e\u3067\u3042\u308bGraphQL\u3068Ruby on Rails\u306e\u7d44\u307f\u5408\u308f\u305b\u306f\u3001\u52b9\u7387\u7684\u306aAPI\u958b\u767a\u306e\u305f\u3081\u306e\u5f37\u529b\u306a\u7d44\u307f\u5408\u308f\u305b\u3067\u3059\u3002\u3053\u306e\u30af\u30a4\u30c3\u30af\u30ac\u30a4\u30c9\u3067\u306f\u3001Ruby on Rails\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067GraphQL API\u3092\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7\u3059\u308b\u305f\u3081\u306e\u91cd\u8981\u306a\u30b9\u30c6\u30c3\u30d7\u3092\u8aac\u660e\u3057\u3001\u52b9\u7387\u7684\u3067\u67d4\u8edf\u306aWeb\u958b\u767a\u306e\u305f\u3081\u306e\u5f37\u56fa\u306a\u57fa\u76e4\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002<\/p>\n<h3 style=\"font-style: normal;\"><span style=\"font-weight: bold;\">\u30b9\u30c6\u30c3\u30d71: \u65b0\u3057\u3044Rails\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u4f5c\u6210\u3059\u308b<\/span><\/h3>\n<p style=\"font-size: 16px; font-style: normal; font-weight: 400;\"><span style=\"font-size: 16px; font-weight: 400;\">\u30d0\u30c3\u30b7\u30e5<\/span><\/p>\n<pre style=\"font-size: 16px; font-style: normal; font-weight: 400;\"><span style=\"font-size: 16px; font-weight: 400;\">rails new graphql_example<\/span><p><\/p>\n<p><span style=\"font-size: 16px; font-weight: 400;\">cd graphql_example<\/span><\/p><\/pre>\n<h3 style=\"font-style: normal;\"><span style=\"font-weight: bold;\">\u30b9\u30c6\u30c3\u30d72\uff1a\u5fc5\u8981\u306agem\u3092Gemfile\u306b\u8ffd\u52a0\u3059\u308b<\/span><\/h3>\n<p style=\"font-size: 16px; font-style: normal; font-weight: 400;\"><span style=\"font-size: 16px; font-weight: 400;\">\u4ee5\u4e0b\u306e\u5b9d\u77f3\u3092&nbsp;<\/span><span style=\"font-size: 16px; font-weight: 400;\">\u30b8\u30a7\u30e0\u30d5\u30a1\u30a4\u30eb<\/span><span style=\"font-size: 16px; font-weight: 400;\">:<\/span><\/p>\n<p style=\"font-size: 16px; font-style: normal; font-weight: 400;\"><span style=\"font-size: 16px; font-weight: 400;\">\u30eb\u30d3\u30fc<\/span><\/p>\n<pre style=\"font-size: 16px; font-style: normal; font-weight: 400;\"><span style=\"font-size: 16px; font-weight: 400;\">gem 'graphql'<\/span><p><\/p>\n<p><span style=\"font-size: 16px; font-weight: 400;\">gem 'graphiql-rails', group: :development<\/span><\/p><\/pre>\n<p style=\"font-size: 16px; font-style: normal; font-weight: 400;\"><span style=\"font-size: 16px; font-weight: 400;\">\u8d70\u308b&nbsp;<\/span><span style=\"font-size: 16px; font-weight: 400;\">\u30d0\u30f3\u30c9\u30eb\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/span><span style=\"font-size: 16px; font-weight: 400;\">&nbsp;\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u65b0\u3057\u3044\u30b8\u30a7\u30e0\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u3002<\/span><\/p>\n<h3 style=\"font-style: normal;\"><span style=\"font-weight: bold;\">\u30b9\u30c6\u30c3\u30d73\uff1aGraphQL\u30b9\u30ad\u30fc\u30de\u306e\u4f5c\u6210<\/span><\/h3>\n<p style=\"font-size: 16px; font-style: normal; font-weight: 400;\"><span style=\"font-size: 16px; font-weight: 400;\">\u3068\u3044\u3046\u540d\u524d\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3059\u308b\u3002&nbsp;<\/span><span style=\"font-size: 16px; font-weight: 400;\">app\/graphql\/types\/query_type.rb<\/span><span style=\"font-size: 16px; font-weight: 400;\">:<\/span><\/p>\n<p style=\"font-size: 16px; font-style: normal; font-weight: 400;\"><span style=\"font-size: 16px; font-weight: 400;\">\u30eb\u30d3\u30fc<\/span><\/p>\n<pre style=\"font-size: 16px; font-style: normal; font-weight: 400;\"><span style=\"font-size: 16px; font-weight: 400;\"># app\/graphql\/types\/query_type.rb<\/span><p><\/p>\n<p><span style=\"font-size: 16px; font-weight: 400;\">Types::QueryType = GraphQL::ObjectType.define do<\/span><\/p>\n<p><span style=\"font-size: 16px; font-weight: 400;\">&nbsp;name '\u30af\u30a8\u30ea\u30fc'<\/span><\/p>\n<p><span style=\"font-size: 16px; font-weight: 400;\">&nbsp;\u8aac\u660e '\u30eb\u30fc\u30c8\u30af\u30a8\u30ea\u30bf\u30a4\u30d7'<\/span><\/p>\n<p><span style=\"font-size: 16px; font-weight: 400;\">&nbsp;\u30d5\u30a3\u30fc\u30eb\u30c9 :hello do<\/span><\/p>\n<p><span style=\"font-size: 16px; font-weight: 400;\">&nbsp;\u30bf\u30a4\u30d7 type.String<\/span><\/p>\n<p><span style=\"font-size: 16px; font-weight: 400;\">&nbsp;\u8aac\u660e '\u30d5\u30a3\u30fc\u30eb\u30c9\u306e\u4f8b'<\/span><\/p>\n<p><span style=\"font-size: 16px; font-weight: 400;\">&nbsp;resolve -&gt;(_obj, _args, _ctx) { 'Hello, GraphQL!}<\/span><\/p>\n<p><span style=\"font-size: 16px; font-weight: 400;\">&nbsp;\u7d42\u308f\u308a<\/span><\/p>\n<p><span style=\"font-size: 16px; font-weight: 400;\">\u7d42\u308f\u308a<\/span><\/p><\/pre>\n<h3 style=\"font-style: normal;\"><span style=\"font-weight: bold;\">\u30b9\u30c6\u30c3\u30d74\uff1aGraphQL\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u306e\u4f5c\u6210<\/span><\/h3>\n<p style=\"font-size: 16px; font-style: normal; font-weight: 400;\"><span style=\"font-size: 16px; font-weight: 400;\">GraphQL\u30af\u30a8\u30ea\u3092\u51e6\u7406\u3059\u308b\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u3092\u751f\u6210\u3059\u308b\uff1a<\/span><\/p>\n<p style=\"font-size: 16px; font-style: normal; font-weight: 400;\"><span style=\"font-size: 16px; font-weight: 400;\">\u30d0\u30c3\u30b7\u30e5<\/span><\/p>\n<pre style=\"font-size: 16px; font-style: normal; font-weight: 400;\"><span style=\"font-size: 16px; font-weight: 400;\">rails generate controller graphql execute<\/span><\/pre>\n<p style=\"font-size: 16px; font-style: normal; font-weight: 400;\"><span style=\"font-size: 16px; font-weight: 400;\">\u306e\u5185\u5bb9\u3092\u7f6e\u304d\u63db\u3048\u308b\u3002&nbsp;<\/span><span style=\"font-size: 16px; font-weight: 400;\">app\/controllers\/graphql_controller.rb<\/span><span style=\"font-size: 16px; font-weight: 400;\">&nbsp;\u4ee5\u4e0b\u306e\u3088\u3046\u306b\uff1a<\/span><\/p>\n<p style=\"font-size: 16px; font-style: normal; font-weight: 400;\"><span style=\"font-size: 16px; font-weight: 400;\">\u30eb\u30d3\u30fc<\/span><\/p>\n<pre style=\"font-size: 16px; font-style: normal; font-weight: 400;\"><span style=\"font-size: 16px; font-weight: 400;\"># app\/controllers\/graphql_controller.rb<\/span><p><\/p>\n<p><span style=\"font-size: 16px; font-weight: 400;\">class GraphqlController &lt; ApplicationController<\/span><\/p>\n<p><span style=\"font-size: 16px; font-weight: 400;\">&nbsp;def execute<\/span><\/p>\n<p><span style=\"font-size: 16px; font-weight: 400;\">&nbsp;\u5909\u6570 = ensure_hash(params[:\u5909\u6570])<\/span><\/p>\n<p><span style=\"font-size: 16px; font-weight: 400;\">&nbsp;\u30af\u30a8\u30ea\u30fc = params[:query]<\/span><\/p>\n<p><span style=\"font-size: 16px; font-weight: 400;\">&nbsp;\u64cd\u4f5c\u540d = params[:operationName]<\/span><\/p>\n<p><span style=\"font-size: 16px; font-weight: 400;\">&nbsp;\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8 = {<\/span><\/p>\n<p><span style=\"font-size: 16px; font-weight: 400;\">&nbsp;# current_user\u3084session\u306a\u3069\u3001\u5fc5\u8981\u306a\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u5024\u3092\u3053\u3053\u306b\u8ffd\u52a0\u3059\u308b\u3002<\/span><\/p>\n<p><span style=\"font-size: 16px; font-weight: 400;\">&nbsp;}<\/span><\/p>\n<p><span style=\"font-size: 16px; font-weight: 400;\">&nbsp;result = Schema.execute(query, variables: variables, context: context, operation_name: operation_name)<\/span><\/p>\n<p><span style=\"font-size: 16px; font-weight: 400;\">&nbsp;json \u3092\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u3059\u308b: \u7d50\u679c<\/span><\/p>\n<p><span style=\"font-size: 16px; font-weight: 400;\">&nbsp;\u7d42\u308f\u308a<\/span><\/p>\n<p><span style=\"font-size: 16px; font-weight: 400;\">&nbsp;\u30d7\u30e9\u30a4\u30d9\u30fc\u30c8<\/span><\/p>\n<p><span style=\"font-size: 16px; font-weight: 400;\">&nbsp;def ensure_hash(\u5909\u6570)<\/span><\/p>\n<p><span style=\"font-size: 16px; font-weight: 400;\">&nbsp;\u30b1\u30fc\u30b9\u5909\u6570<\/span><\/p>\n<p><span style=\"font-size: 16px; font-weight: 400;\">&nbsp;\u6587\u5b57\u5217<\/span><\/p>\n<p><span style=\"font-size: 16px; font-weight: 400;\">&nbsp;JSON.parse(\u5909\u6570) || {}.<\/span><\/p>\n<p><span style=\"font-size: 16px; font-weight: 400;\">&nbsp;\u30cf\u30c3\u30b7\u30e5<\/span><\/p>\n<p><span style=\"font-size: 16px; font-weight: 400;\">&nbsp;\u5909\u6570<\/span><\/p>\n<p><span style=\"font-size: 16px; font-weight: 400;\">&nbsp;nil\u306e\u3068\u304d<\/span><\/p>\n<p><span style=\"font-size: 16px; font-weight: 400;\">&nbsp;{}<\/span><\/p>\n<p><span style=\"font-size: 16px; font-weight: 400;\">&nbsp;\u305d\u308c\u4ee5\u5916<\/span><\/p>\n<p><span style=\"font-size: 16px; font-weight: 400;\">&nbsp;raise ArgumentError, \"\u7121\u52b9\u306a\u5909\u6570\uff1a#{\u5909\u6570}\"<\/span><\/p>\n<p><span style=\"font-size: 16px; font-weight: 400;\">&nbsp;\u7d42\u308f\u308a<\/span><\/p>\n<p><span style=\"font-size: 16px; font-weight: 400;\">&nbsp;\u7d42\u308f\u308a<\/span><\/p>\n<p><span style=\"font-size: 16px; font-weight: 400;\">\u7d42\u308f\u308a<\/span><\/p><\/pre>\n<h3 style=\"font-style: normal;\"><span style=\"font-weight: bold;\">\u30b9\u30c6\u30c3\u30d75\uff1aGraphQL\u30b9\u30ad\u30fc\u30de\u3092\u4f5c\u6210\u3059\u308b<\/span><\/h3>\n<p style=\"font-size: 16px; font-style: normal; font-weight: 400;\"><span style=\"font-size: 16px; font-weight: 400;\">\u3068\u3044\u3046\u540d\u524d\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3059\u308b\u3002&nbsp;<\/span><span style=\"font-size: 16px; font-weight: 400;\">app\/graphql\/schema.rb<\/span><span style=\"font-size: 16px; font-weight: 400;\">:<\/span><\/p>\n<p style=\"font-size: 16px; font-style: normal; font-weight: 400;\"><span style=\"font-size: 16px; font-weight: 400;\">\u30eb\u30d3\u30fc<\/span><\/p>\n<pre style=\"font-size: 16px; font-style: normal; font-weight: 400;\"><span style=\"font-size: 16px; font-weight: 400;\"># app\/graphql\/schema.rb<\/span><p><\/p>\n<p><span style=\"font-size: 16px; font-weight: 400;\">\u30b9\u30ad\u30fc\u30de = GraphQL::Schema.define do<\/span><\/p>\n<p><span style=\"font-size: 16px; font-weight: 400;\">&nbsp;\u30af\u30a8\u30ea(Types::QueryType)<\/span><\/p>\n<p><span style=\"font-size: 16px; font-weight: 400;\">&nbsp;# \u5fc5\u8981\u306b\u5fdc\u3058\u3066\u5909\u7570\u578b\u3092\u8ffd\u52a0\u3059\u308b\u3002<\/span><\/p>\n<p><span style=\"font-size: 16px; font-weight: 400;\">\u7d42\u308f\u308a<\/span><\/p><\/pre>\n<h3 style=\"font-style: normal;\"><span style=\"font-weight: bold;\">\u30b9\u30c6\u30c3\u30d76\uff1a\u30eb\u30fc\u30c8\u3092\u8a2d\u5b9a\u3059\u308b<\/span><\/h3>\n<p style=\"font-size: 16px; font-style: normal; font-weight: 400;\"><span style=\"font-size: 16px; font-weight: 400;\">\u66f4\u65b0&nbsp;<\/span><span style=\"font-size: 16px; font-weight: 400;\">config\/routes.rb<\/span><span style=\"font-size: 16px; font-weight: 400;\">&nbsp;\u306bGraphQL\u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8\u3092\u542b\u3081\u308b\uff1a<\/span><\/p>\n<p style=\"font-size: 16px; font-style: normal; font-weight: 400;\"><span style=\"font-size: 16px; font-weight: 400;\">\u30eb\u30d3\u30fc<\/span><\/p>\n<pre style=\"font-size: 16px; font-style: normal; font-weight: 400;\"><span style=\"font-size: 16px; font-weight: 400;\"># config\/routes.rb<\/span><p><\/p>\n<p><span style=\"font-size: 16px; font-weight: 400;\">Rails.application.routes.draw \u306f\u5b9f\u884c\u3057\u307e\u3059<\/span><\/p>\n<p><span style=\"font-size: 16px; font-weight: 400;\">&nbsp;post '\/graphql', to\uff1a'graphql#execute'\u3002<\/span><\/p>\n<p><span style=\"font-size: 16px; font-weight: 400;\">&nbsp;if Rails.env.development?<\/span><\/p>\n<p><span style=\"font-size: 16px; font-weight: 400;\">&nbsp;mount GraphiQL::Rails::Engine, at\uff1a'\/graphiql'\u3001graphql_path: '\/graphql'<\/span><\/p>\n<p><span style=\"font-size: 16px; font-weight: 400;\">&nbsp;\u7d42\u308f\u308a<\/span><\/p>\n<p><span style=\"font-size: 16px; font-weight: 400;\">\u7d42\u308f\u308a<\/span><\/p><\/pre>\n<h3 style=\"font-style: normal;\"><span style=\"font-weight: bold;\">\u30b9\u30c6\u30c3\u30d77: Rails\u30b5\u30fc\u30d0\u30fc\u306e\u5b9f\u884c<\/span><\/h3>\n<p style=\"font-size: 16px; font-style: normal; font-weight: 400;\"><span style=\"font-size: 16px; font-weight: 400;\">\u30d0\u30c3\u30b7\u30e5<\/span><\/p>\n<pre style=\"font-size: 16px; font-style: normal; font-weight: 400;\"><span style=\"font-size: 16px; font-weight: 400;\">\u30ec\u30fc\u30eb<\/span><\/pre>\n<p style=\"font-size: 16px; font-style: normal; font-weight: 400;\"><span style=\"font-size: 16px; font-weight: 400;\">\u8a2a\u554f&nbsp;<\/span><span style=\"font-size: 16px; font-weight: 400;\">http:\/\/localhost:3000\/graphiql<\/span><span style=\"font-size: 16px; font-weight: 400;\">&nbsp;\u3092\u30d6\u30e9\u30a6\u30b6\u306b\u8ffd\u52a0\u3057\u3066\u3001GraphQL\u3092\u63a2\u7d22\u3059\u308b\u305f\u3081\u306e\u30d6\u30e9\u30a6\u30b6\u5185IDE\u3067\u3042\u308bGraphiQL\u3092\u4f7f\u7528\u3059\u308b\u3002<\/span><\/p>\n<p style=\"font-size: 16px; font-style: normal; font-weight: 400;\"><span style=\"font-size: 16px; font-weight: 400;\">GraphiQL\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30a4\u30b9\u3067\u306f\u3001\u6b21\u306e\u3088\u3046\u306a\u30af\u30a8\u30ea\u3092\u5165\u529b\u3067\u304d\u308b\uff1a<\/span><\/p>\n<p style=\"font-size: 16px; font-style: normal; font-weight: 400;\"><span style=\"font-size: 16px; font-weight: 400;\">\u30b0\u30e9\u30d5\u30a8\u30eb<\/span><\/p>\n<pre style=\"font-size: 16px; font-style: normal; font-weight: 400;\"><span style=\"font-size: 16px; font-weight: 400;\">{<\/span><p><\/p>\n<p><span style=\"font-size: 16px; font-weight: 400;\">&nbsp;\u3053\u3093\u306b\u3061\u308f<\/span><\/p>\n<p><span style=\"font-size: 16px; font-weight: 400;\">}<\/span><\/p><\/pre>\n<p style=\"font-size: 16px; font-style: normal; font-weight: 400;\"><span style=\"font-size: 16px; font-weight: 400;\">\u305d\u3057\u3066\u8fd4\u4e8b\u304c\u6765\u308b\u306f\u305a\u3060\uff1a<\/span><\/p>\n<p style=\"font-size: 16px; font-style: normal; font-weight: 400;\"><span style=\"font-size: 16px; font-weight: 400;\">json<\/span><\/p>\n<pre style=\"font-size: 16px; font-style: normal; font-weight: 400;\"><span style=\"font-size: 16px; font-weight: 400;\">{<\/span><p><\/p>\n<p><span style=\"font-size: 16px; font-weight: 400;\">&nbsp;\"data\"\uff1a{<\/span><\/p>\n<p><span style=\"font-size: 16px; font-weight: 400;\">&nbsp;\"hello\"\uff1a\"\u3053\u3093\u306b\u3061\u306f\u3001GraphQL!\"<\/span><\/p>\n<p><span style=\"font-size: 16px; font-weight: 400;\">&nbsp;}<\/span><\/p>\n<p><span style=\"font-size: 16px; font-weight: 400;\">}<\/span><\/p><\/pre>\n<p style=\"font-size: 16px; font-style: normal; font-weight: 400;\"><span style=\"font-size: 16px; font-weight: 400;\">\u3053\u308c\u306f\u5358\u7d14\u306a\u4f8b\u3060\u304c\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u30cb\u30fc\u30ba\u306b\u5408\u308f\u305b\u3066\u3001\u3088\u308a\u591a\u304f\u306e\u578b\u3084\u5909\u7570\u3067GraphQL\u30b9\u30ad\u30fc\u30de\u3092\u62e1\u5f35\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u308b\u3002<\/span><\/p>\n<h2><strong>\u7d50\u8ad6<\/strong><\/h2>\n<p>\u3053\u306e\u30af\u30a4\u30c3\u30af\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7\u30ac\u30a4\u30c9\u306b\u5f93\u3046\u3053\u3068\u3067\u3001GraphQL\u3092Ruby on Rails\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306b\u30b7\u30fc\u30e0\u30ec\u30b9\u306b\u7d71\u5408\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002GraphQL \u306e\u30d1\u30ef\u30fc\u3092\u5229\u7528\u3057\u3066\u3001\u512a\u308c\u305f\u958b\u767a\u8005\u3068\u30e6\u30fc\u30b6\u30fc\u30a8\u30af\u30b9\u30da\u30ea\u30a8\u30f3\u30b9\u3092\u63d0\u4f9b\u3057\u306a\u304c\u3089\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u56fa\u6709\u306e\u30cb\u30fc\u30ba\u306b\u5fdc\u3048\u308b API \u3092\u4f5c\u6210\u3057\u307e\u3057\u3087\u3046\u3002Ruby on Rails \u3067\u306e GraphQL \u306e\u30b7\u30f3\u30d7\u30eb\u3055\u3068\u67d4\u8edf\u6027\u3092\u5229\u7528\u3057\u3066\u3001API \u958b\u767a\u306e\u30b2\u30fc\u30e0\u3092\u5411\u4e0a\u3055\u305b\u307e\u3057\u3087\u3046\u3002\u3042\u306a\u305f\u306e\u4f1a\u793e\u306e\u30c7\u30b8\u30bf\u30eb\u30d7\u30ec\u30bc\u30f3\u30b9\u3092\u9ad8\u3081\u308b <a href=\"https:\/\/www.railscarma.com\/ja\/%e3%83%96%e3%83%ad%e3%82%b0\/%e3%83%ad%e3%83%bc\/why-to-hire-ruby-on-rails-developers\/\">\u4e00\u6d41\u306eRuby on Rails\u958b\u767a\u8005<\/a> \u304b\u3089 <a href=\"https:\/\/www.railscarma.com\/ja\">\u30ec\u30fc\u30eb\u30ab\u30fc\u30de<\/a>.\u7d4c\u9a13\u8c4a\u5bcc\u306a\u30d7\u30ed\u30d5\u30a7\u30c3\u30b7\u30e7\u30ca\u30eb\u304c\u8c4a\u5bcc\u306a\u7d4c\u9a13\u3068\u9769\u65b0\u7684\u306a\u6280\u8853\u3092\u99c6\u4f7f\u3057\u3001\u304a\u5ba2\u69d8\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u304c\u30b7\u30fc\u30e0\u30ec\u30b9\u306b\u5b9f\u884c\u3055\u308c\u308b\u3060\u3051\u3067\u306a\u304f\u3001\u696d\u754c\u6a19\u6e96\u3092\u4e0a\u56de\u308b\u3053\u3068\u3092\u304a\u7d04\u675f\u3057\u307e\u3059\u3002<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-a7ae815 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"a7ae815\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-1db08e2\" data-id=\"1db08e2\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t  <div class=\"related-post slider\">\r\n        <div class=\"headline\">\u95a2\u9023\u8a18\u4e8b<\/div>\r\n    <div class=\"post-list owl-carousel\">\r\n\r\n            <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Offliberty Ruby Gem\u3068\u306f\uff1f\" href=\"https:\/\/www.railscarma.com\/ja\/%e3%83%96%e3%83%ad%e3%82%b0\/what-is-offliberty-ruby-gem-and-how-it-works\/?related_post_from=41304\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/04\/What-is-Offliberty-Ruby-Gem-and-How-It-Works.png\" class=\"attachment-full size-full wp-post-image\" alt=\"\u30aa\u30d5\u30ea\u30d0\u30c6\u30a3\u30fb\u30eb\u30d3\u30fc\u30fb\u30b8\u30a7\u30e0\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/04\/What-is-Offliberty-Ruby-Gem-and-How-It-Works.png 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/04\/What-is-Offliberty-Ruby-Gem-and-How-It-Works-300x113.png 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/04\/What-is-Offliberty-Ruby-Gem-and-How-It-Works-768x288.png 768w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/04\/What-is-Offliberty-Ruby-Gem-and-How-It-Works-18x7.png 18w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"Offliberty Ruby Gem\u3068\u306f\uff1f\" href=\"https:\/\/www.railscarma.com\/ja\/%e3%83%96%e3%83%ad%e3%82%b0\/what-is-offliberty-ruby-gem-and-how-it-works\/?related_post_from=41304\">\r\n        Offliberty Ruby Gem\u3068\u306f\uff1f  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Rails\u306elink_to\u30e1\u30bd\u30c3\u30c9\uff1a\u4f8b\u306b\u3088\u308b\u5b8c\u5168\u30ac\u30a4\u30c9\" href=\"https:\/\/www.railscarma.com\/ja\/%e3%83%96%e3%83%ad%e3%82%b0\/rails-link_to-method-the-complete-guide-with-examples\/?related_post_from=41296\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/04\/Rails-link_to-Method-The-Complete-Guide-with-Examples.png\" class=\"attachment-full size-full wp-post-image\" alt=\"Rails link_to\u30e1\u30bd\u30c3\u30c9\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/04\/Rails-link_to-Method-The-Complete-Guide-with-Examples.png 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/04\/Rails-link_to-Method-The-Complete-Guide-with-Examples-300x113.png 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/04\/Rails-link_to-Method-The-Complete-Guide-with-Examples-768x288.png 768w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/04\/Rails-link_to-Method-The-Complete-Guide-with-Examples-18x7.png 18w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"Rails\u306elink_to\u30e1\u30bd\u30c3\u30c9\uff1a\u4f8b\u306b\u3088\u308b\u5b8c\u5168\u30ac\u30a4\u30c9\" href=\"https:\/\/www.railscarma.com\/ja\/%e3%83%96%e3%83%ad%e3%82%b0\/rails-link_to-method-the-complete-guide-with-examples\/?related_post_from=41296\">\r\n        Rails\u306elink_to\u30e1\u30bd\u30c3\u30c9\uff1a\u4f8b\u306b\u3088\u308b\u5b8c\u5168\u30ac\u30a4\u30c9  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Ruby on Rails\u3092\u4f7f\u3063\u3066\u30b9\u30b1\u30fc\u30e9\u30d6\u30eb\u306aSaaS\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u3092\u69cb\u7bc9\u3059\u308b\u65b9\u6cd5\" href=\"https:\/\/www.railscarma.com\/ja\/%e3%83%96%e3%83%ad%e3%82%b0\/how-to-build-a-scalable-saas-platform-using-ruby-on-rails\/?related_post_from=41273\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/04\/Build-a-SaaS-Platform-Using-Ruby-on-Rails.png\" class=\"attachment-full size-full wp-post-image\" alt=\"Ruby on Rails\u3092\u4f7f\u3063\u3066SaaS\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u3092\u69cb\u7bc9\u3059\u308b\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/04\/Build-a-SaaS-Platform-Using-Ruby-on-Rails.png 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/04\/Build-a-SaaS-Platform-Using-Ruby-on-Rails-300x113.png 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/04\/Build-a-SaaS-Platform-Using-Ruby-on-Rails-768x288.png 768w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/04\/Build-a-SaaS-Platform-Using-Ruby-on-Rails-18x7.png 18w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"Ruby on Rails\u3092\u4f7f\u3063\u3066\u30b9\u30b1\u30fc\u30e9\u30d6\u30eb\u306aSaaS\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u3092\u69cb\u7bc9\u3059\u308b\u65b9\u6cd5\" href=\"https:\/\/www.railscarma.com\/ja\/%e3%83%96%e3%83%ad%e3%82%b0\/how-to-build-a-scalable-saas-platform-using-ruby-on-rails\/?related_post_from=41273\">\r\n        Ruby on Rails\u3092\u4f7f\u3063\u3066\u30b9\u30b1\u30fc\u30e9\u30d6\u30eb\u306aSaaS\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u3092\u69cb\u7bc9\u3059\u308b\u65b9\u6cd5  <\/a>\r\n\r\n        <\/div>\r\n              <div class=\"item\">\r\n            <div class=\"thumb post_thumb\">\r\n    <a  title=\"Ruby\u6b63\u898f\u8868\u73fe\u30de\u30c3\u30c1\u30ac\u30a4\u30c9\uff082026\uff09\u4f8b\u4ed8\u304d\" href=\"https:\/\/www.railscarma.com\/ja\/%e3%83%96%e3%83%ad%e3%82%b0\/ruby-regex-match-guide-with-examples\/?related_post_from=41249\">\r\n\r\n      <img decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/04\/Ruby-Regex-Match-Guide-with-Examples.png\" class=\"attachment-full size-full wp-post-image\" alt=\"\u30eb\u30d3\u30fc\u6b63\u898f\u8868\u73fe\u30de\u30c3\u30c1\" srcset=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/04\/Ruby-Regex-Match-Guide-with-Examples.png 800w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/04\/Ruby-Regex-Match-Guide-with-Examples-300x113.png 300w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/04\/Ruby-Regex-Match-Guide-with-Examples-768x288.png 768w, https:\/\/www.railscarma.com\/wp-content\/uploads\/2026\/04\/Ruby-Regex-Match-Guide-with-Examples-18x7.png 18w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\r\n\r\n    <\/a>\r\n  <\/div>\r\n\r\n  <a class=\"title post_title\"  title=\"Ruby\u6b63\u898f\u8868\u73fe\u30de\u30c3\u30c1\u30ac\u30a4\u30c9\uff082026\uff09\u4f8b\u4ed8\u304d\" href=\"https:\/\/www.railscarma.com\/ja\/%e3%83%96%e3%83%ad%e3%82%b0\/ruby-regex-match-guide-with-examples\/?related_post_from=41249\">\r\n        Ruby\u6b63\u898f\u8868\u73fe\u30de\u30c3\u30c1\u30ac\u30a4\u30c9\uff082026\uff09\u4f8b\u4ed8\u304d  <\/a>\r\n\r\n        <\/div>\r\n      \r\n  <\/div>\r\n\r\n  <script>\r\n      <\/script>\r\n  <style>\r\n    .related-post {}\r\n\r\n    .related-post .post-list {\r\n      text-align: left;\r\n          }\r\n\r\n    .related-post .post-list .item {\r\n      margin: 10px;\r\n      padding: 10px;\r\n          }\r\n\r\n    .related-post .headline {\r\n      font-size: 14px !important;\r\n      color: #999999 !important;\r\n          }\r\n\r\n    .related-post .post-list .item .post_thumb {\r\n      max-height: 220px;\r\n      margin: 10px 0px;\r\n      padding: 0px;\r\n      display: block;\r\n          }\r\n\r\n    .related-post .post-list .item .post_title {\r\n      font-size: 14px;\r\n      color: #000000;\r\n      margin: 10px 0px;\r\n      padding: 0px;\r\n      display: block;\r\n      text-decoration: none;\r\n          }\r\n\r\n    .related-post .post-list .item .post_excerpt {\r\n      font-size: 12px;\r\n      color: #3f3f3f;\r\n      margin: 10px 0px;\r\n      padding: 0px;\r\n      display: block;\r\n      text-decoration: none;\r\n          }\r\n\r\n    .related-post .owl-dots .owl-dot {\r\n          }\r\n\r\n      <\/style>\r\n      <script>\r\n      jQuery(document).ready(function($) {\r\n        $(\".related-post .post-list\").owlCarousel({\r\n          items: 2,\r\n          responsiveClass: true,\r\n          responsive: {\r\n            0: {\r\n              items: 1,\r\n            },\r\n            768: {\r\n              items: 2,\r\n            },\r\n            1200: {\r\n              items: 2,\r\n            }\r\n          },\r\n                      rewind: true,\r\n                                loop: true,\r\n                                center: false,\r\n                                autoplay: true,\r\n            autoplayHoverPause: true,\r\n                                nav: true,\r\n            navSpeed: 1000,\r\n            navText: ['<i class=\"fas fa-chevron-left\"><\/i>', '<i class=\"fas fa-chevron-right\"><\/i>'],\r\n                                dots: false,\r\n            dotsSpeed: 1200,\r\n                                                    rtl: false,\r\n          \r\n        });\r\n      });\r\n    <\/script>\r\n  <\/div>","protected":false},"excerpt":{"rendered":"<p>GraphQL, a modern query language for APIs, paired with Ruby on Rails, offers a powerful combination for streamlined API development. In this quick guide, we&#8217;ll walk through the essential steps to set up a GraphQL API in a Ruby on Rails application, providing you with a solid foundation for efficient and flexible web development. Step 1: Create a new Rails project bash rails new graphql_example cd graphql_example Step 2: Add necessary gems to your Gemfile Add the following gems to your&nbsp;Gemfile: ruby gem &#8216;graphql&#8217; gem &#8216;graphiql-rails&#8217;, group: :development Run&nbsp;bundle install&nbsp;to install the new gems. Step 3: Create a GraphQL schema Create a file named&nbsp;app\/graphql\/types\/query_type.rb: ruby # app\/graphql\/types\/query_type.rb Types::QueryType = GraphQL::ObjectType.define &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"\" href=\"https:\/\/www.railscarma.com\/ja\/%e3%83%96%e3%83%ad%e3%82%b0\/ruby-regex-match-guide-with-examples\/\"> <span class=\"screen-reader-text\">Ruby\u6b63\u898f\u8868\u73fe\u30de\u30c3\u30c1\u30ac\u30a4\u30c9\uff082026\uff09\u4f8b\u4ed8\u304d<\/span> \u3082\u3063\u3068\u8aad\u3080 \"<\/a><\/p>","protected":false},"author":5,"featured_media":37470,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1224],"tags":[],"class_list":["post-37464","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Building GraphQL API in Rails: A Quick Setup Guide - RailsCarma<\/title>\n<meta name=\"description\" content=\"Building GraphQL API in Ruby on Rails with our quick guide. Harness the flexibility of GraphQL for enhanced Rails applications.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.railscarma.com\/ja\/\u30d6\u30ed\u30b0\/rails\u3067graphql-api\u3092\u69cb\u7bc9\u3059\u308b-\u30af\u30a4\u30c3\u30af\u30fb\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7\u30fb\u30ac\u30a4\/\" \/>\n<meta property=\"og:locale\" content=\"ja_JP\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Building GraphQL API in Rails: A Quick Setup Guide - RailsCarma\" \/>\n<meta property=\"og:description\" content=\"Building GraphQL API in Ruby on Rails with our quick guide. Harness the flexibility of GraphQL for enhanced Rails applications.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.railscarma.com\/ja\/\u30d6\u30ed\u30b0\/rails\u3067graphql-api\u3092\u69cb\u7bc9\u3059\u308b-\u30af\u30a4\u30c3\u30af\u30fb\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7\u30fb\u30ac\u30a4\/\" \/>\n<meta property=\"og:site_name\" content=\"RailsCarma - Ruby on Rails Development Company specializing in Offshore Development\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/RailsCarma\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-11-14T06:44:09+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-11-14T07:51:28+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2023\/11\/Building-GraphQL-API-in-Rails-A-Quick-Setup-Guide.png\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"300\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Nikhil\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@railscarma\" \/>\n<meta name=\"twitter:site\" content=\"@railscarma\" \/>\n<meta name=\"twitter:label1\" content=\"\u57f7\u7b46\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"Nikhil\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593\" \/>\n\t<meta name=\"twitter:data2\" content=\"3\u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.railscarma.com\/de\/blog\/building-graphql-api-in-rails-a-quick-setup-guide\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.railscarma.com\/de\/blog\/building-graphql-api-in-rails-a-quick-setup-guide\/\"},\"author\":{\"name\":\"Nikhil\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/person\/1aa0357392b349082303e8222c35c30c\"},\"headline\":\"Building GraphQL API in Rails: A Quick Setup Guide\",\"datePublished\":\"2023-11-14T06:44:09+00:00\",\"dateModified\":\"2023-11-14T07:51:28+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.railscarma.com\/de\/blog\/building-graphql-api-in-rails-a-quick-setup-guide\/\"},\"wordCount\":341,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.railscarma.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.railscarma.com\/de\/blog\/building-graphql-api-in-rails-a-quick-setup-guide\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2023\/11\/Building-GraphQL-API-in-Rails-A-Quick-Setup-Guide.png\",\"articleSection\":[\"Blogs\"],\"inLanguage\":\"ja\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.railscarma.com\/de\/blog\/building-graphql-api-in-rails-a-quick-setup-guide\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.railscarma.com\/de\/blog\/building-graphql-api-in-rails-a-quick-setup-guide\/\",\"url\":\"https:\/\/www.railscarma.com\/de\/blog\/building-graphql-api-in-rails-a-quick-setup-guide\/\",\"name\":\"Building GraphQL API in Rails: A Quick Setup Guide - RailsCarma\",\"isPartOf\":{\"@id\":\"https:\/\/www.railscarma.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.railscarma.com\/de\/blog\/building-graphql-api-in-rails-a-quick-setup-guide\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.railscarma.com\/de\/blog\/building-graphql-api-in-rails-a-quick-setup-guide\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2023\/11\/Building-GraphQL-API-in-Rails-A-Quick-Setup-Guide.png\",\"datePublished\":\"2023-11-14T06:44:09+00:00\",\"dateModified\":\"2023-11-14T07:51:28+00:00\",\"description\":\"Building GraphQL API in Ruby on Rails with our quick guide. Harness the flexibility of GraphQL for enhanced Rails applications.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.railscarma.com\/de\/blog\/building-graphql-api-in-rails-a-quick-setup-guide\/#breadcrumb\"},\"inLanguage\":\"ja\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.railscarma.com\/de\/blog\/building-graphql-api-in-rails-a-quick-setup-guide\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\/\/www.railscarma.com\/de\/blog\/building-graphql-api-in-rails-a-quick-setup-guide\/#primaryimage\",\"url\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2023\/11\/Building-GraphQL-API-in-Rails-A-Quick-Setup-Guide.png\",\"contentUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2023\/11\/Building-GraphQL-API-in-Rails-A-Quick-Setup-Guide.png\",\"width\":800,\"height\":300,\"caption\":\"Building GraphQL API in Rails A Quick Setup Guide\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.railscarma.com\/de\/blog\/building-graphql-api-in-rails-a-quick-setup-guide\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.railscarma.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Building GraphQL API in Rails: A Quick Setup Guide\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.railscarma.com\/#website\",\"url\":\"https:\/\/www.railscarma.com\/\",\"name\":\"RailsCarma - Ruby on Rails Development Company specializing in Offshore Development\",\"description\":\"RailsCarma is a Ruby on Rails Development Company in Bangalore. We specialize in Offshore Ruby on Rails Development based out in USA and India. Hire experienced Ruby on Rails developers for the ultimate Web Experience.\",\"publisher\":{\"@id\":\"https:\/\/www.railscarma.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.railscarma.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ja\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.railscarma.com\/#organization\",\"name\":\"RailsCarma\",\"url\":\"https:\/\/www.railscarma.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png\",\"contentUrl\":\"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png\",\"width\":200,\"height\":46,\"caption\":\"RailsCarma\"},\"image\":{\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/RailsCarma\/\",\"https:\/\/x.com\/railscarma\",\"https:\/\/www.linkedin.com\/company\/railscarma\/\",\"https:\/\/myspace.com\/railscarma\",\"https:\/\/in.pinterest.com\/railscarma\/\",\"https:\/\/www.youtube.com\/channel\/UCx3Wil-aAnDARuatTEyMdpg\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/person\/1aa0357392b349082303e8222c35c30c\",\"name\":\"Nikhil\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\/\/www.railscarma.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/054f31ff35e9917aaf631b8025ef679d42dd21792012d451763138d66d02a4c0?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/054f31ff35e9917aaf631b8025ef679d42dd21792012d451763138d66d02a4c0?s=96&d=mm&r=g\",\"caption\":\"Nikhil\"},\"sameAs\":[\"https:\/\/www.railscarma.com\/hire-ruby-on-rails-developer\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Rails\u3067GraphQL API\u3092\u69cb\u7bc9\u3059\u308b\uff1a\u30af\u30a4\u30c3\u30af\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7\u30ac\u30a4\u30c9 - RailsCarma","description":"\u30af\u30a4\u30c3\u30af\u30ac\u30a4\u30c9\u3067Ruby on Rails\u3067GraphQL API\u3092\u69cb\u7bc9\u3002Rails\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u62e1\u5f35\u306bGraphQL\u306e\u67d4\u8edf\u6027\u3092\u6d3b\u7528\u3057\u307e\u3057\u3087\u3046\u3002","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.railscarma.com\/ja\/\u30d6\u30ed\u30b0\/rails\u3067graphql-api\u3092\u69cb\u7bc9\u3059\u308b-\u30af\u30a4\u30c3\u30af\u30fb\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7\u30fb\u30ac\u30a4\/","og_locale":"ja_JP","og_type":"article","og_title":"Building GraphQL API in Rails: A Quick Setup Guide - RailsCarma","og_description":"Building GraphQL API in Ruby on Rails with our quick guide. Harness the flexibility of GraphQL for enhanced Rails applications.","og_url":"https:\/\/www.railscarma.com\/ja\/\u30d6\u30ed\u30b0\/rails\u3067graphql-api\u3092\u69cb\u7bc9\u3059\u308b-\u30af\u30a4\u30c3\u30af\u30fb\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7\u30fb\u30ac\u30a4\/","og_site_name":"RailsCarma - Ruby on Rails Development Company specializing in Offshore Development","article_publisher":"https:\/\/www.facebook.com\/RailsCarma\/","article_published_time":"2023-11-14T06:44:09+00:00","article_modified_time":"2023-11-14T07:51:28+00:00","og_image":[{"width":800,"height":300,"url":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2023\/11\/Building-GraphQL-API-in-Rails-A-Quick-Setup-Guide.png","type":"image\/png"}],"author":"Nikhil","twitter_card":"summary_large_image","twitter_creator":"@railscarma","twitter_site":"@railscarma","twitter_misc":{"\u57f7\u7b46\u8005":"Nikhil","\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593":"3\u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.railscarma.com\/de\/blog\/building-graphql-api-in-rails-a-quick-setup-guide\/#article","isPartOf":{"@id":"https:\/\/www.railscarma.com\/de\/blog\/building-graphql-api-in-rails-a-quick-setup-guide\/"},"author":{"name":"Nikhil","@id":"https:\/\/www.railscarma.com\/#\/schema\/person\/1aa0357392b349082303e8222c35c30c"},"headline":"Building GraphQL API in Rails: A Quick Setup Guide","datePublished":"2023-11-14T06:44:09+00:00","dateModified":"2023-11-14T07:51:28+00:00","mainEntityOfPage":{"@id":"https:\/\/www.railscarma.com\/de\/blog\/building-graphql-api-in-rails-a-quick-setup-guide\/"},"wordCount":341,"commentCount":0,"publisher":{"@id":"https:\/\/www.railscarma.com\/#organization"},"image":{"@id":"https:\/\/www.railscarma.com\/de\/blog\/building-graphql-api-in-rails-a-quick-setup-guide\/#primaryimage"},"thumbnailUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2023\/11\/Building-GraphQL-API-in-Rails-A-Quick-Setup-Guide.png","articleSection":["Blogs"],"inLanguage":"ja","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.railscarma.com\/de\/blog\/building-graphql-api-in-rails-a-quick-setup-guide\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.railscarma.com\/de\/blog\/building-graphql-api-in-rails-a-quick-setup-guide\/","url":"https:\/\/www.railscarma.com\/de\/blog\/building-graphql-api-in-rails-a-quick-setup-guide\/","name":"Rails\u3067GraphQL API\u3092\u69cb\u7bc9\u3059\u308b\uff1a\u30af\u30a4\u30c3\u30af\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7\u30ac\u30a4\u30c9 - RailsCarma","isPartOf":{"@id":"https:\/\/www.railscarma.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.railscarma.com\/de\/blog\/building-graphql-api-in-rails-a-quick-setup-guide\/#primaryimage"},"image":{"@id":"https:\/\/www.railscarma.com\/de\/blog\/building-graphql-api-in-rails-a-quick-setup-guide\/#primaryimage"},"thumbnailUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2023\/11\/Building-GraphQL-API-in-Rails-A-Quick-Setup-Guide.png","datePublished":"2023-11-14T06:44:09+00:00","dateModified":"2023-11-14T07:51:28+00:00","description":"\u30af\u30a4\u30c3\u30af\u30ac\u30a4\u30c9\u3067Ruby on Rails\u3067GraphQL API\u3092\u69cb\u7bc9\u3002Rails\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u62e1\u5f35\u306bGraphQL\u306e\u67d4\u8edf\u6027\u3092\u6d3b\u7528\u3057\u307e\u3057\u3087\u3046\u3002","breadcrumb":{"@id":"https:\/\/www.railscarma.com\/de\/blog\/building-graphql-api-in-rails-a-quick-setup-guide\/#breadcrumb"},"inLanguage":"ja","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.railscarma.com\/de\/blog\/building-graphql-api-in-rails-a-quick-setup-guide\/"]}]},{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/www.railscarma.com\/de\/blog\/building-graphql-api-in-rails-a-quick-setup-guide\/#primaryimage","url":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2023\/11\/Building-GraphQL-API-in-Rails-A-Quick-Setup-Guide.png","contentUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2023\/11\/Building-GraphQL-API-in-Rails-A-Quick-Setup-Guide.png","width":800,"height":300,"caption":"Building GraphQL API in Rails A Quick Setup Guide"},{"@type":"BreadcrumbList","@id":"https:\/\/www.railscarma.com\/de\/blog\/building-graphql-api-in-rails-a-quick-setup-guide\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.railscarma.com\/"},{"@type":"ListItem","position":2,"name":"Building GraphQL API in Rails: A Quick Setup Guide"}]},{"@type":"WebSite","@id":"https:\/\/www.railscarma.com\/#website","url":"https:\/\/www.railscarma.com\/","name":"RailsCarma - \u30aa\u30d5\u30b7\u30e7\u30a2\u958b\u767a\u306b\u7279\u5316\u3057\u305f Ruby on Rails \u958b\u767a\u4f1a\u793e","description":"RailsCarma \u306f\u30d0\u30f3\u30ac\u30ed\u30fc\u30eb\u306e Ruby on Rails \u958b\u767a\u4f1a\u793e\u3067\u3059\u3002\u5f53\u793e\u306f\u7c73\u56fd\u3068\u30a4\u30f3\u30c9\u3092\u62e0\u70b9\u3068\u3059\u308b\u30aa\u30d5\u30b7\u30e7\u30a2 Ruby on Rails \u958b\u767a\u3092\u5c02\u9580\u3068\u3057\u3066\u3044\u307e\u3059\u3002\u7d4c\u9a13\u8c4a\u5bcc\u306a Ruby on Rails \u958b\u767a\u8005\u3092\u96c7\u3063\u3066\u3001\u7a76\u6975\u306e Web \u30a8\u30af\u30b9\u30da\u30ea\u30a8\u30f3\u30b9\u3092\u5b9f\u73fe\u3057\u307e\u3057\u3087\u3046\u3002","publisher":{"@id":"https:\/\/www.railscarma.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.railscarma.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ja"},{"@type":"Organization","@id":"https:\/\/www.railscarma.com\/#organization","name":"\u30ec\u30fc\u30eb\u30ab\u30fc\u30de","url":"https:\/\/www.railscarma.com\/","logo":{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png","contentUrl":"https:\/\/www.railscarma.com\/wp-content\/uploads\/2020\/08\/railscarma_logo.png","width":200,"height":46,"caption":"RailsCarma"},"image":{"@id":"https:\/\/www.railscarma.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/RailsCarma\/","https:\/\/x.com\/railscarma","https:\/\/www.linkedin.com\/company\/railscarma\/","https:\/\/myspace.com\/railscarma","https:\/\/in.pinterest.com\/railscarma\/","https:\/\/www.youtube.com\/channel\/UCx3Wil-aAnDARuatTEyMdpg"]},{"@type":"Person","@id":"https:\/\/www.railscarma.com\/#\/schema\/person\/1aa0357392b349082303e8222c35c30c","name":"\u30cb\u30ad\u30eb","image":{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/www.railscarma.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/054f31ff35e9917aaf631b8025ef679d42dd21792012d451763138d66d02a4c0?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/054f31ff35e9917aaf631b8025ef679d42dd21792012d451763138d66d02a4c0?s=96&d=mm&r=g","caption":"Nikhil"},"sameAs":["https:\/\/www.railscarma.com\/hire-ruby-on-rails-developer\/"]}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.railscarma.com\/ja\/wp-json\/wp\/v2\/posts\/37464","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.railscarma.com\/ja\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.railscarma.com\/ja\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/ja\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/ja\/wp-json\/wp\/v2\/comments?post=37464"}],"version-history":[{"count":0,"href":"https:\/\/www.railscarma.com\/ja\/wp-json\/wp\/v2\/posts\/37464\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.railscarma.com\/ja\/wp-json\/wp\/v2\/media\/37470"}],"wp:attachment":[{"href":"https:\/\/www.railscarma.com\/ja\/wp-json\/wp\/v2\/media?parent=37464"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.railscarma.com\/ja\/wp-json\/wp\/v2\/categories?post=37464"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.railscarma.com\/ja\/wp-json\/wp\/v2\/tags?post=37464"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}