programing

GraphQL ID를 고객의 문자열로 처리해야 합니까?

minimums 2023. 10. 5. 21:26
반응형

GraphQL ID를 고객의 문자열로 처리해야 합니까?

다음을 사용하여 응용프로그램을 만들고 있습니다.

  • 백엔드 데이터베이스로서의 MySQL
  • Apollo GraphQL 서버를 해당 데이터베이스에 대한 쿼리 계층으로 표시
  • GraphQL과 MySQL 사이의 ORM 계층으로 후속화

GraphQL 스키마를 구축하면서 GraphQL ID 데이터 유형을 사용하여 레코드를 고유하게 식별하고 있습니다.여기 예시 스키마와 MySQL 레졸버/커넥터가 있습니다.

그래프ql 유형:

type Person {
  id: ID!
  firstName: String
  middleName: String
  lastName: String
  createdAt: String
  updatedAt: String
}

후속 커넥터 크기 조정

export const Person = sequelize.define('person', {
  firstName: { type: Sequelize.STRING },
  middleName: { type: Sequelize.STRING },
  lastName: { type: Sequelize.STRING },
});

그래프QL 레졸버:

Query: {
  person(_, args) {
    return Person.findById(args.id);
}

그렇게 하면 됩니다.제 질문은 이렇습니다.그래프QL은 다음을 치료하는 것 같습니다.ID활자로 치다ID 값이 MySQL 데이터베이스에 저장되는 동안INTSquelize에 의해서.GraphQL을 사용하여 데이터베이스의 ID 값과 일치하는 문자열 또는 정수로 MySQL db를 쿼리할 수 있습니다.그러나 GraphQL은 항상 ID 값을 문자열로 반환합니다.

고객사에서 이 값을 어떻게 처리해야 합니까?GraphQL에서 받는 즉시 항상 정수로 변환해야 합니까?ID 값을 문자열로 저장하도록 후속 코드를 수정해야 합니까?이와 같이 GraphQL ID를 사용할 때 올바른 진행 방법이 있습니까?

IDGraphQL 규격(2016년 10월 작업 초안)에 기술된 스칼라 타입입니다.

ID 유형은 문자열과 동일한 방식으로 직렬화되지만 사용자 ‐로 읽을 수 있는 것은 아닙니다.숫자인 경우가 많지만 항상 문자열로 직렬화되어야 합니다.


너의 관찰

GraphQL을 사용하여 데이터베이스의 ID 값과 일치하는 문자열 또는 정수로 MySQL db를 쿼리할 수 있습니다.그러나 GraphQL은 항상 ID 값을 문자열로 반환합니다.

결과 강제성에 대한 규격과 일치합니다.

GraphQL은 ID 형식과 무관하며 ID가 나타낼 수 있는 여러 형식에 걸쳐 일관성을 보장하기 위해 문자열로 직렬화됩니다.

입력 강제성:

입력 유형으로 예상되는 경우, 임의의 문자열(예: "4") 또는 정수(예: 4) 입력 값은 지정된 GraphQL 서버가 예상하는 ID 형식에 적합하도록 ID로 강제 지정해야 합니다.


고객사에서 이 값을 어떻게 처리해야 합니까?

  • 작업시ID 결과를 문자열로 취급합니다.
  • 사용시ID 입력(GraphQL 변수 또는 돌연변이 또는 쿼리에 대한 입력 파라미터)에서는 정수 또는 문자열을 사용할 수 있습니다.

GraphQL에서 받는 즉시 항상 정수로 변환해야 합니까?

그것은 당신의 용도에 따라 매우 다릅니다.여기에는 명확한 "예" 또는 "아니오"를 지정하는 일반적인 규칙이 없습니다.

ID 값을 문자열로 저장하도록 후속 코드를 수정해야 합니까?

아니요, 그럴 필요는 없습니다.

에 대한 IDtype은 ID를 저장하는 방법을 포함하지 않으며, GraphQL 서버가 처리하는 방법만 포함합니다.ID투입산출그래프QL .이 동작을 보장하는 것은 그래프QL 계층에 달려 있습니다.실제 스토리지에서 ID가 어떻게 처리되는지는 스토리지 계층에 달려 있습니다.

이와 같이 GraphQL ID를 사용할 때 올바른 진행 방법이 있습니까?

위의 답변들도 이 질문에 답하길 바랍니다 :)

언급URL : https://stackoverflow.com/questions/47874344/should-i-handle-a-graphql-id-as-a-string-on-the-client

반응형