没有不值得去解决的问题,也没有不值得去学习的技术!

在 GraphQL Mutation 中,在同一次 HTTP 请求中,执行多个 Mutation 的实现

计划在同一次 HTTP 请求中,执行多个 Mutation。参考:https://graphql.cn/learn/queries/#aliases ,使用别名
1、在 GraphQL Mutation 中,在同一次 HTTP 请求中,现在仅执行了一个 Mutation。如图1
在 GraphQL Mutation 中,在同一次 HTTP 请求中,现在仅执行了一个 Mutation
图1


mutation UploadThemeAsset($input: ThemeAssetUploadInput!) {
	onlineStoreThemeAssetUpload(input: $input) {
		themeAsset {
			id
			themeId
			value
			key
			publicUrl
			mimeType
			checksum
			category
			warnings
			createdAt
			updatable
			deletable
			renameable
			updatable
		}
	}
}




{
	"input": {
		"themeId": "{{themeId}}",
		"key": "assets/js/1.js",
		"value": "string"
	}
}




{
  "data": {
    "onlineStoreThemeAssetUpload": {
      "themeAsset": {
        "id": "346186",
        "themeId": "98ad1110-014d-4a61-bbb4-d74bc4ed30f7",
        "value": "string",
        "key": "assets/js/1.js",
        "publicUrl": null,
        "mimeType": "text/plain",
        "checksum": "ecb252044b5ea0f679ee78ec1a12904739e2904d",
        "category": "asset",
        "warnings": [],
        "createdAt": "2023-03-14 17:36:36",
        "updatable": false,
        "deletable": false,
        "renameable": false
      }
    }
  }
}


2、当单位时间内 HTTP 请求数量过多时,会触发接口的限流。如图2
当单位时间内 HTTP 请求数量过多时,会触发接口的限流
图2
3、计划在同一次 HTTP 请求中,执行多个 Mutation。参考:https://graphql.cn/learn/queries/#aliases ,使用别名。如图3
计划在同一次 HTTP 请求中,执行多个 Mutation。参考:https://graphql.cn/learn/queries/#aliases ,使用别名
图3


mutation UploadThemeAsset($input1: ThemeAssetUploadInput!, $input2: ThemeAssetUploadInput!) {
	themeAssetUpload1: onlineStoreThemeAssetUpload(input: $input1) {
		themeAsset {
			...themeAssetFields
		}
	}
  themeAssetUpload2: onlineStoreThemeAssetUpload(input: $input2) {
		themeAsset {
			...themeAssetFields
		}
	}
}

fragment themeAssetFields on ThemeAsset {
  id
  themeId
  value
  key
  publicUrl
  mimeType
  checksum
  category
  warnings
  createdAt
  updatable
  deletable
  renameable
  updatable
}





{
	"input1": {
		"themeId": "{{themeId}}",
		"key": "assets/js/1.js",
		"value": "string"
  },
  "input2": {
		"themeId": "{{themeId}}",
		"key": "assets/js/2.js",
		"value": "string"
	}
}




{
  "data": {
    "themeAssetUpload1": {
      "themeAsset": {
        "id": "346186",
        "themeId": "98ad1110-014d-4a61-bbb4-d74bc4ed30f7",
        "value": "string",
        "key": "assets/js/1.js",
        "publicUrl": null,
        "mimeType": "text/plain",
        "checksum": "ecb252044b5ea0f679ee78ec1a12904739e2904d",
        "category": "asset",
        "warnings": [],
        "createdAt": "2023-03-14 17:36:36",
        "updatable": false,
        "deletable": false,
        "renameable": false
      }
    },
    "themeAssetUpload2": {
      "themeAsset": {
        "id": "346187",
        "themeId": "98ad1110-014d-4a61-bbb4-d74bc4ed30f7",
        "value": "string",
        "key": "assets/js/2.js",
        "publicUrl": null,
        "mimeType": "text/plain",
        "checksum": "ecb252044b5ea0f679ee78ec1a12904739e2904d",
        "category": "asset",
        "warnings": [],
        "createdAt": "2023-03-14 18:04:55",
        "updatable": false,
        "deletable": false,
        "renameable": false
      }
    }
  }
}


需要长期技术维护或远程问题排查?

我是拥有 15+ 年经验的 PHP / Go 后端工程师,长期关注已有系统维护、Bug 修复、性能优化、服务器排查、WordPress 网站维护和小功能迭代。

如果你的项目遇到以下情况,可以先从一次小问题排查开始合作:

  • ✅ PHP / Laravel / Yii2 老项目无人维护
  • ✅ Go / Gin 后端接口需要排查或优化
  • ✅ WordPress 网站访问慢、报错或插件冲突
  • ✅ Nginx / MySQL / Redis / Linux 服务器异常
  • ✅ CDN / Cloudflare / DNS / HTTPS 配置问题
  • ✅ 需要长期远程技术支持或兼职维护

更多介绍请查看:关于我 & 合作

微信:13980074657
邮箱:shuijingwanwq@gmail.com
Telegram:@shuijingwan
GitHub:https://github.com/shuijingwan

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理