Apollo Server에서 "Upload" 타입을 사용할 때 - Unknown type "Upload". Did you mean "Float"? 에러 해결

김까치·2023년 6월 6일
0

Apollo Server를 사용하여 GraphQL API를 개발하는 도중 "Upload" 타입을 사용할 때 다음과 같은 에러 메시지가 발생하는 경우가 있습니다: "Error: Unknown type 'Upload'. Did you mean 'Float'?" 이러한 에러가 발생하는 이유는 Apollo Server가 "Upload" 타입을 인식하지 못하고 대신 "Float" 타입을 제안하기 때문입니다.

이러한 에러를 해결하기 위해서는 스키마 파일에서 다음과 같은 작업을 수행해야 합니다.


  1. 스키마 파일의 상단에 scalar Upload를 추가합니다. 이는 "Upload" 타입을 스키마에 명시적으로 정의하는 것을 의미합니다.
import { gql } from "apollo-server";

export default gql`
  scalar Upload
  type EditProfileResult {
    ok: Boolean!
    error: String
  }
  type Mutation {
    editProfile(
      firstName: String
      lastName: String
      username: String
      email: String
      password: String
      bio: String
      avatar: Upload
    ): EditProfileResult!
  }
`;

  1. scalar Upload를 추가한 후에는 Apollo Server를 다시 시작해야 합니다. 이렇게 하면 Apollo Server가 "Upload" 타입을 인식하고 에러 없이 실행됩니다.

위와 같이 수정한 스키마를 적용하면 "Upload" 타입을 사용하여 파일 업로드를 처리할 수 있게 됩니다. 예를 들어, editProfile 뮤테이션의 avatar 인자에 업로드할 파일을 전달하고 해당 파일을 처리하는 로직을 구현할 수 있습니다.

profile
개발자 연습생

0개의 댓글