第11章 ユーザーがモバイルアプリケーションからファイルをアップロードできるようにする


11.1. サーバーでのファイルアップロードの有効化

Data Sync Server は、GraphQL クエリーとともにバイナリーデータをアップロードするためのサポートを提供します。実装は、アップストリームの Apollo Server 機能に依存しています。

アップロード機能は、GraphQL マルチパートフォームリクエスト仕様を使用します。ファイルのアップロードは、サーバーとクライアントの両方に実装する必要があります。

  1. クライアントでは、HTML FileList オブジェクトがミューテーションにマップされ、マルチパートリクエストでサーバーに送信されます。
  2. サーバー上では、マルチパートリクエストが処理されます。サーバーはそれを処理し、リゾルバーにアップロード引数を提供します。リゾルバー機能では、アップロードプロミスがオブジェクトを解決します。
注記

ファイルのアップロードは graphql-multipart-request-spec に基づいています。

手順

ファイルのアップロードを有効にするには、スキーマを作成し、Upload スカラーを使用します。以下に例を示します。

const { ApolloServer, gql } = require('apollo-server');

const typeDefs = gql`
  type File {
    filename: String!
    mimetype: String!
    encoding: String!
  }
  type Query {
    uploads: [File]
  }
  type Mutation {
    singleUpload(file: Upload!): File!
  }
`;
Copy to Clipboard Toggle word wrap

次のスキーマはファイルのアップロードを有効にします。Upload スカラーは、リゾルバーの引数の 1 つとして挿入されます。Upload スカラーには、すべてのファイルメタデータと、ファイルを特定の場所に保存するために使用できる Readable Stream が含まれています。

    async singleUpload(parent, { file }) {
      const { stream, filename, mimetype, encoding } = await file;
      // Save file and return required metadata
    }
Copy to Clipboard Toggle word wrap

詳細は、Official Apollo blog post を参照してください。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat