从Elixir API创建GraphQL查询的步骤如下:
{:absinthe, "~> 1.6"},
{:absinthe_plug, "~> 1.5"},
{:absinthe_ecto, "~> 0.1"}
然后运行mix deps.get
命令安装依赖。
defmodule MyApp.GraphQL.Schema do
use Absinthe.Schema
query do
field :hello, :string do
resolve &MyApp.Resolvers.HelloResolver.hello/2
end
end
end
在上面的示例中,我们定义了一个名为"hello"的查询字段,它返回一个字符串。我们还指定了一个解析器函数来处理该查询。
defmodule MyApp.Resolvers.HelloResolver do
def hello(_args, _info) do
"Hello, World!"
end
end
在上面的示例中,我们定义了一个名为"hello"的解析器函数,它返回字符串"Hello, World!"。
defmodule MyAppWeb.Router do
use MyAppWeb, :router
pipeline :api do
plug :accepts, ["json"]
end
scope "/api" do
pipe_through :api
forward "/graphql", Absinthe.Plug,
schema: MyApp.GraphQL.Schema,
context: %{}
end
end
在上面的示例中,我们将"/graphql"路径映射到Absinthe.Plug,并指定了GraphQL模式和上下文。
mix phx.server
命令启动Phoenix应用程序。现在,你可以通过发送POST请求到"/api/graphql"路径来执行GraphQL查询。例如,你可以使用curl命令发送一个查询:
curl -X POST \
-H "Content-Type: application/json" \
-d '{"query":"{ hello }"}' \
http://localhost:4000/api/graphql
以上就是从Elixir API创建GraphQL查询的基本步骤。你可以根据具体需求扩展和定制GraphQL模式、类型和解析器。对于更复杂的应用程序,你可能需要使用Ecto库来处理数据库查询,并在解析器中集成它。
领取专属 10元无门槛券
手把手带您无忧上云