【发布时间】:2020-02-16 05:32:19
【问题描述】:
我正在使用 Graphql,我想使用惯用的方式来处理来自客户端的错误输入和 Graphql 突变。目前,如果用户尝试提交不符合服务器要求的数据,我的服务器仍会发回 200 响应。
架构
mutation do
field :create_team, :team do
arg(:name, non_null(:string))
arg(:league_id, non_null(:id))
resolve(&TeamResolver.create_team/3)
end
end
解析器
def create_team(_root, args, info) do
Teams.create_team(args, info)
end
团队背景
def create_team(attrs, info) do
user_id = Auth.current_user_id(info)
changeset = Team.changeset(%Team{user_id: user_id}, attrs)
case Repo.insert(changeset) do
{:ok, team} ->
{:ok, team}
{:error, changeset} ->
{:error, "error"}
end
end
问题出在上下文中,我们不使用conn,所以我不能使用put_status(:unproccesable_entity) 或类似的东西。如果客户端发送了错误数据,我该如何发回4xx 状态码?
【问题讨论】:
-
This answer 可能感兴趣。