Insert mutation / Hasura ドキュメント翻訳
TweetAuto-generated insert mutation schema
自動生成された mutation schema の一例を見てみましょう。以下の GraphQL Schema は、article
テーブルに record を挿入する mutation schema
です。
For example, the auto-generated schema for the insert mutation field for a table article looks like this:
insert_article (
objects: [article_insert_input!]!
on_conflict: article_on_conflict
): article_mutation_response
# article テーブルに対する mutaion を行った結果返ってくる respose の type です
# response of any mutation on the table "article"
type article_mutation_response {
# mutation によって影響を受けた row の数です
# number of affected rows by the mutation
affected_rows: Int!
# mutation によって影響を受けた row の情報です
# data of the affected rows by the mutation
returning: [article!]!
}
# single object insert (supported from v1.2.0)
insert_article_one (
object: article_insert_input!
on_conflict: article_on_conflict
): article
上記の schema からわかるのは以下のことです。
objects
という引数は必須であり、また複数のobject
を渡すことができる。on_conflict
という引数を渡すこともでき、そうした場合には、mutation はupsert mutation
へと機能が変更される。- Mutation によって影響を受けた row の数と、影響を受けた object の情報を(
nested object
の形式で)得ることができる。 - 単一の object を insert したい場合には、そのための mutation を使用することができる。(訳注: 元のドキュメントの説明は不十分であると感じたため、大きく変更している。原文では、single insert を用いると、単一の変更された object の情報が返ってくる旨のみ記述されている。)
- objects argument is necessary and you can pass multiple objects to the mutation.
- You can pass an on_conflict argument to convert the mutation to an upsert mutation.
- You can return the number of affected rows and the affected objects (with nested objects) in the response.
- You can use the single object insert to get the inserted object directly as the mutation response.