λΈ”λ‘œκ·Έ

πŸš€ Gato GraphQL 버전 0.8을 μΆœμ‹œν–ˆμŠ΅λ‹ˆλ‹€!

Leonardo Losoviz
μž‘μ„±μž: Leonardo Losoviz Β·

Gato GraphQL 버전 0.8이 λ‹€μš΄λ‘œλ“œ κ°€λŠ₯ν•΄μ‘ŒμŠ΅λ‹ˆλ‹€! πŸŽ‰

이번 λ¦΄λ¦¬μŠ€λŠ” 맀우 λŒ€κ·œλͺ¨λ‘œ, λ‹€μŒ μ„Έ κ°€μ§€ μ˜μ—­μ— 쀑점을 두고 μžˆμŠ΅λ‹ˆλ‹€:

  1. ν™•μž₯ κΈ°λŠ₯을 μ§€μ›ν•˜κΈ° μœ„ν•œ μ½”λ“œλ² μ΄μŠ€ λ¦¬νŒ©ν† λ§
  2. GraphQL μ‚¬μ–‘μ˜ μΆ”κ°€ μ€€μˆ˜
  3. GraphQL μŠ€ν‚€λ§ˆ μ™„μ„±

λ˜ν•œ μƒˆλ‘œμš΄ WordPress 5.8을 μ§€μ›ν•˜λ©°, λ‹€μˆ˜μ˜ 버그 μˆ˜μ • 및 κ°œμ„  사항이 ν¬ν•¨λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.

이번 λ¦΄λ¦¬μŠ€μ—λŠ” ν˜Έν™˜μ„±μ„ κΉ¨λŠ” λ³€κ²½ 사항이 ν¬ν•¨λ˜μ–΄ μžˆμœΌλ―€λ‘œ μ£Όμ˜ν•˜μ‹œκΈ° λ°”λžλ‹ˆλ‹€.

μ•„λž˜λŠ” 릴리슀 λ…ΈνŠΈμž…λ‹ˆλ‹€. λΉ λ₯Έ 링크:


WordPress 5.8 지원

WordPress 5.8은 이 ν”ŒλŸ¬κ·ΈμΈμ—μ„œ μ‚¬μš©ν•˜λŠ” allowed_block_types 및 block_categoriesλ₯Ό ν¬ν•¨ν•œ μ—¬λŸ¬ ν•„ν„° 훅을 더 이상 μ‚¬μš©ν•˜μ§€ μ•Šλ„λ‘ μ§€μ •ν–ˆμŠ΅λ‹ˆλ‹€.

영ν–₯을 λ°›λŠ” 훅은 λ‹€μŒκ³Ό 같이 λŒ€μ²΄λ˜μ—ˆμŠ΅λ‹ˆλ‹€:

  1. allowed_block_types => allowed_block_types_all
  2. block_categories => block_categories_all

PHP 8.0 지원 κ°œμ„ 

이번 λ¦΄λ¦¬μŠ€λŠ” PHP 8.0 μ‚¬μš© μ‹œ λ°œμƒν•˜λŠ” λͺ‡ κ°€μ§€ 문제λ₯Ό μˆ˜μ •ν•©λ‹ˆλ‹€.

μ»¨ν…Œμ΄λ„ˆ μ„œλΉ„μŠ€λ₯Ό μ „λ©΄μ μœΌλ‘œ μ‚¬μš©ν•œ μ½”λ“œλ² μ΄μŠ€ κ°„μ†Œν™”

GraphQL μ„œλ²„μ˜ μ½”λ“œλ² μ΄μŠ€κ°€ λ¦¬νŒ©ν† λ§λ˜μ–΄, μŠ€ν‚€λ§ˆμ˜ λͺ¨λ“  μš”μ†Œ(type resolver, field resolver, interface resolver, custom scalar resolver λ“±)λ₯Ό λ“±λ‘ν•˜κΈ° μœ„ν•΄ μ„œλΉ„μŠ€ μ»¨ν…Œμ΄λ„ˆλ₯Ό μ‚¬μš©ν•˜κ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

이것은 ν•˜λ‚˜μ˜ λ§ˆμΌμŠ€ν†€μœΌλ‘œ, ν”ŒλŸ¬κ·ΈμΈκ³Ό κ·Έ ν™•μž₯ κΈ°λŠ₯ κ°œλ°œμ„ μœ„ν•œ 단일 μ ‘κ·Ό 방식을 λ„μž…ν•˜μ—¬ μ½”λ“œμ™€ λ¬Έμ„œλ₯Ό 크게 κ°„μ†Œν™”ν•©λ‹ˆλ‹€.

Gato GraphQL의 μ»€μŠ€ν…€ ν™•μž₯ κΈ°λŠ₯을 λ§Œλ“œλŠ” 방법에 λŒ€ν•œ λ¬Έμ„œλ₯Ό 이제 μž‘μ„±ν•  수 있게 λ˜μ—ˆμŠ΅λ‹ˆλ‹€. μž‘μ—…μ€ κ³§ μ‹œμž‘λ˜μ–΄ κ°€μ΄λ“œ μ„Ήμ…˜μ— κ²Œμ‹œλ  μ˜ˆμ •μž…λ‹ˆλ‹€.

wp-content ν•˜μœ„μ— μΊμ‹œ μ €μž₯

ν”ŒλŸ¬κ·ΈμΈμ€ μ„±λŠ₯ μ΅œμ ν™”λ₯Ό μœ„ν•΄ κ²°κ³Όλ₯Ό λ””μŠ€ν¬μ— μΊμ‹œν•©λ‹ˆλ‹€.

μΊμ‹œλœ νŒŒμΌμ€ 이전에 κ΄€λ¦¬μž μ‚¬μš©μžμ—κ²Œ 보이지 μ•ŠλŠ” μ‹œμŠ€ν…œ 폴더 μ•„λž˜μ— μ €μž₯λ˜μ—ˆμŠ΅λ‹ˆλ‹€. μ΄μ œλΆ€ν„°λŠ” wp-content/graphql-api/cache/ ν•˜μœ„μ— μ €μž₯λ©λ‹ˆλ‹€.

WordPress νŽΈμ§‘κΈ°λ₯Ό κ΅¬λ™ν•˜κΈ° μœ„ν•œ γ€Œκ³ μ • μŠ€ν‚€λ§ˆγ€GraphQL μ—”λ“œν¬μΈνŠΈ λ„μž…

이제 wp-adminμ—λŠ” 두 개의 μ—”λ“œν¬μΈνŠΈκ°€ μžˆμŠ΅λ‹ˆλ‹€:

  1. GRAPHQL_API_ADMIN_CONFIGURABLESCHEMA_ENDPOINT
  2. GRAPHQL_API_ADMIN_FIXEDSCHEMA_ENDPOINT

GRAPHQL_API_ADMIN_CONFIGURABLESCHEMA_ENDPOINTμ—μ„œλŠ” GraphQL μŠ€ν‚€λ§ˆκ°€ λ„€μž„μŠ€νŽ˜μ΄μŠ€ μ—¬λΆ€, μœ ν˜•/λ””λ ‰ν‹°λΈŒ ν™œμ„±ν™” μ—¬λΆ€ λ“± μ‚¬μš©μž 섀정에 따라 λ³€κ²½λ©λ‹ˆλ‹€.

GRAPHQL_API_ADMIN_FIXEDSCHEMA_ENDPOINTμ—μ„œλŠ” GraphQL μŠ€ν‚€λ§ˆκ°€ μ‚¬μš©μž 섀정에 따라 λ³€κ²½λ˜μ§€ μ•ŠμœΌλ©°, γ€Œλ¬΄μ œν•œγ€κ΄€λ¦¬μž ν•„λ“œλ₯Ό ν¬ν•¨ν•˜μ—¬ λͺ¨λ“  μœ ν˜•, ν•„λ“œ, λ””λ ‰ν‹°λΈŒλ₯Ό 항상 λ…ΈμΆœν•©λ‹ˆλ‹€.

κ³ μ • μ—”λ“œν¬μΈνŠΈλ₯Ό 톡해 Gutenberg 블둝은 μ‚¬μš©μžμ˜ ν™œμ„±ν™”/λΉ„ν™œμ„±ν™” 섀정에 관계없이 λͺ¨λ“  ν•„λ“œλ₯Ό λ¬΄μ œν•œμœΌλ‘œ 쿼리할 수 있게 λ©λ‹ˆλ‹€.

μŠ€ν‚€λ§ˆμ—μ„œ ν•„λ“œ μœ ν˜• μΆ”κ°€ 지원

ν•„λ“œ μœ ν˜•μœΌλ‘œμ„œμ˜ 리슀트 지원이 ν™•μž₯λ˜μ–΄ λ‹€μŒ κΈ°λŠ₯이 μ§€μ›λ©λ‹ˆλ‹€:

  • null을 ν—ˆμš©ν•˜μ§€ μ•ŠλŠ” ν•­λͺ©μ˜ 리슀트: [String!]
  • 리슀트의 리슀트: [[String]]
  • μ΄λ“€μ˜ μž„μ˜ μ‘°ν•©: [[String!]!]

μž…λ ₯ κ°•μ œ λ³€ν™˜: λ¦¬μŠ€νŠΈκ°€ μ˜ˆμƒλ˜λŠ” 경우 단일 κ°’ ν—ˆμš©

GraphQL 사양에 μ •μ˜λœ λŒ€λ‘œ, λ¦¬μŠ€νŠΈκ°€ μ˜ˆμƒλ˜λŠ” GraphQL 쿼리 μœ„μΉ˜μ— 단일 값을 μž…λ ₯ν•  수 있게 λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

예λ₯Ό λ“€μ–΄, λ‹€μŒ 쿼리듀은 이제 λ™μΌν•©λ‹ˆλ‹€:

query InputSingleValue {
  posts(filter: { ids: 1 }) {
    title
  }
}
 
query InputListOfSingleItem {
  posts(filter: { ids: [1] }) {
    title
  }
}

WordPress μŠ€ν‚€λ§ˆ μΆ”κ°€ μ™„μ„±

WordPress 데이터 λͺ¨λΈμ˜ μΆ”κ°€ μ—”ν‹°ν‹°κ°€ GraphQL μŠ€ν‚€λ§ˆμ— μΆ”κ°€λ˜μ—ˆμŠ΅λ‹ˆλ‹€:

GraphQL schema

μΆ”κ°€λœ μƒˆλ‘œμš΄ μš”μ†Œλ“€μ„ μ‚΄νŽ΄λ³΄κ² μŠ΅λ‹ˆλ‹€.

μΉ΄ν…Œκ³ λ¦¬

μΉ΄ν…Œκ³ λ¦¬κ°€ μƒˆλ‘œμš΄ PostCategory μœ ν˜•κ³Ό λ‹€μŒ μƒˆλ‘œμš΄ ν•„λ“œλ₯Ό 톡해 λ§€ν•‘λ˜μ—ˆμŠ΅λ‹ˆλ‹€:

  • Root.postCategories: [PostCategory]
  • Root.postCategory: PostCategory
  • Post.categories: [PostCategory]

예λ₯Ό λ“€μ–΄, 이 μΏΌλ¦¬λŠ” κ²Œμ‹œλ¬Όμ˜ μΉ΄ν…Œκ³ λ¦¬λ₯Ό κ°€μ Έμ˜΅λ‹ˆλ‹€:

{
  posts {
    id
    title
    categories {
      id
      name
      url
    }
  }
}

κ²Œμ‹œλ¬Όμ— μΉ΄ν…Œκ³ λ¦¬λ₯Ό ν• λ‹Ήν•˜κΈ° μœ„ν•œ mutation ν•„λ“œλ„ μΆ”κ°€λ˜μ—ˆμŠ΅λ‹ˆλ‹€:

  • MutationRoot.setCategoriesOnPost: Post

λ˜ν•œ κ²Œμ‹œλ¬Ό mutation ν•„λ“œμ— categories μž…λ ₯이 μΆ”κ°€λ˜μ—ˆμŠ΅λ‹ˆλ‹€:

  • MutationRoot.createPost
  • MutationRoot.updatePost
  • Post.update (쀑첩 mutation이 ν™œμ„±ν™”λœ 경우)

메타

μ»€μŠ€ν…€ κ²Œμ‹œλ¬Ό, μ‚¬μš©μž, λŒ“κΈ€, λΆ„λ₯˜ μ²΄κ³„μ˜ 메타 값을 λ‹€μŒ μƒˆλ‘œμš΄ ν•„λ“œλ₯Ό 톡해 쿼리할 수 있게 λ˜μ—ˆμŠ΅λ‹ˆλ‹€:

  • Post.metaValue: AnyScalar
  • Post.metaValues: [AnyScalar]
  • User.metaValue: AnyScalar
  • User.metaValues: [AnyScalar]
  • Comment.metaValue: AnyScalar
  • Comment.metaValues: [AnyScalar]
  • PostCategory.metaValue: AnyScalar
  • PostCategory.metaValues: [AnyScalar]
  • PostTag.metaValue: AnyScalar
  • PostTag.metaValues: [AnyScalar]

예λ₯Ό λ“€μ–΄, 이 μΏΌλ¦¬λŠ” μ‚¬μš©μžμ˜ 메타 last_name을 κ°€μ Έμ˜΅λ‹ˆλ‹€:

{
  users {
    id
    lastName: metaValue(key: "last_name")
  }
}

메타 값은 무엇이든 될 수 μžˆμœΌλ―€λ‘œ(string, integer, float, λ˜λŠ” boolean), μƒˆλ‘­κ²Œ λ„μž…λœ μ œλ„€λ¦­ 슀칼라 μœ ν˜• AnyScalarλ₯Ό 톡해 λ§€ν•‘λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

메타 값은 곡개 λ˜λŠ” λΉ„κ³΅κ°œμΌ 수 μžˆμŠ΅λ‹ˆλ‹€. μ–΄λ–€ 메타 ν‚€λ₯Ό 쿼리할 수 μžˆλŠ”μ§€λŠ” μ„€μ • νŽ˜μ΄μ§€μ—μ„œ λͺ…μ‹œμ μœΌλ‘œ ꡬ성해야 ν•©λ‹ˆλ‹€:

ν•­λͺ© μ •μ˜
ν•­λͺ© μ •μ˜

기본적으둜 ν—ˆμš©λœ 메타 ν‚€ λͺ©λ‘μ€ λΉ„μ–΄ μžˆμŠ΅λ‹ˆλ‹€.

메뉴

메뉴가 μƒˆλ‘œμš΄ Menu μœ ν˜•κ³Ό μƒˆλ‘œμš΄ ν•„λ“œ Root.menuλ₯Ό 톡해 λ§€ν•‘λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

{
  menu(by: { id: 176 }) {
    itemDataEntries
  }
}

μ„€μ •

μ‚¬μ΄νŠΈ μ„€μ •(ν…Œμ΄λΈ” wp_options에 μ €μž₯됨)을 μƒˆλ‘œμš΄ ν•„λ“œ Root.option: AnyScalarλ₯Ό 톡해 쿼리할 수 있게 λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

예λ₯Ό λ“€μ–΄, 이 μΏΌλ¦¬λŠ” μ‚¬μ΄νŠΈ 이름을 κ°€μ Έμ˜΅λ‹ˆλ‹€:

{
  siteName: optionValue(name: "blogname")
}

μ–΄λ–€ μ˜΅μ…˜μ— μ ‘κ·Όν•  수 μžˆλŠ”μ§€λŠ” μ„€μ • νŽ˜μ΄μ§€μ—μ„œ λͺ…μ‹œμ μœΌλ‘œ ꡬ성해야 ν•©λ‹ˆλ‹€:

Defining the entries for the Settings

기본적으둜 λ‹€μŒ μ˜΅μ…˜λ§Œ 쿼리할 수 μžˆμŠ΅λ‹ˆλ‹€:

  • "home"
  • "blogname"
  • "blogdescription"

μ‚¬μš©μž κ²Œμ‹œλ¬Ό

λ‘œκ·ΈμΈν•œ μ‚¬μš©μžλŠ” λ‹€μŒ μƒˆλ‘œμš΄ ν•„λ“œλ₯Ό 톡해 μž„μ˜μ˜ μƒνƒœ(publish, pending, draft λ˜λŠ” trash)의 μžμ‹ μ˜ κ²Œμ‹œλ¬Όμ„ κ°€μ Έμ˜¬ 수 있게 λ˜μ—ˆμŠ΅λ‹ˆλ‹€:

  • Root.myPosts: [Post]
  • Root.myPostCount: Int
  • Root.myPost: Post

예λ₯Ό λ“€μ–΄, 이제 이 쿼리λ₯Ό μ‹€ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€:

# Log yourself in first
mutation LogIn {
  loginUser(usernameOrEmail: "test", password: "pass") {
    id
    name
  }
}
 
# Then retrieve your posts
query GetMyPosts {
  myPosts {
    id
    title
    url
    status
    author {
      name
    }
  }
}

GraphQL μŠ€ν‚€λ§ˆμ— γ€Œλ¬΄μ œν•œγ€κ΄€λ¦¬μž ν•„λ“œ μΆ”κ°€

GraphQL μŠ€ν‚€λ§ˆλŠ” 곡개 APIμ—μ„œ 개인 정보가 λ…ΈμΆœλ˜μ§€ μ•Šλ„λ‘ 곡개 ν•„λ“œμ™€ λΉ„κ³΅κ°œ ν•„λ“œ κ°„μ˜ κ· ν˜•μ„ μœ μ§€ν•΄μ•Ό ν•©λ‹ˆλ‹€.

μƒˆλ‘œμš΄ λͺ¨λ“ˆ Schema for the Admin은 개인 데이터λ₯Ό λ…ΈμΆœν•  수 μžˆλŠ” γ€Œλ¬΄μ œν•œγ€κ΄€λ¦¬μž ν•„λ“œλ₯Ό GraphQL μŠ€ν‚€λ§ˆμ— μΆ”κ°€ν•©λ‹ˆλ‹€:

Root:

  • unrestrictedPost
  • unrestrictedPosts
  • unrestrictedPostCount
  • unrestrictedCustomPost
  • unrestrictedCustomPosts
  • unrestrictedCustomPostCount
  • unrestrictedGenericCustomPost
  • unrestrictedGenericCustomPosts
  • unrestrictedGenericCustomPostCount
  • unrestrictedPage
  • unrestrictedPages
  • unrestrictedPageCount
  • unrestrictedUsers
  • roles
  • capabilities

User:

  • unrestrictedPosts
  • unrestrictedPostCount
  • unrestrictedCustomPosts
  • unrestrictedCustomPostCount
  • roles
  • capabilities

PostCategory:

  • unrestrictedPosts
  • unrestrictedPostCount

PostTag:

  • unrestrictedPosts
  • unrestrictedPostCount

예λ₯Ό λ“€μ–΄, κ²Œμ‹œλ¬Ό 데이터에 μ ‘κ·Όν•  λ•Œ ν˜„μž¬λŠ” κ²Œμ‹œλœ κ²Œμ‹œλ¬Όμ„ κ°€μ Έμ˜€λŠ” λ°©μ‹μœΌλ‘œ 곡개 λ°μ΄ν„°λ§Œ λ…ΈμΆœν•˜λŠ” ν•„λ“œ postsκ°€ μžˆμŠ΅λ‹ˆλ‹€.

μ΄μ œλΆ€ν„°λŠ” ν•„λ“œ unrestrictedPostsλ₯Ό ν†΅ν•΄μ„œλ„ κ²Œμ‹œλ¬Ό 데이터에 μ ‘κ·Όν•  수 있으며, μ΄λŠ” μž„μ˜μ˜ μƒνƒœ("publish", "draft", "pending", "trash")의 κ²Œμ‹œλ¬Όμ„ κ°€μ Έμ˜€λŠ” λ°©μ‹μœΌλ‘œ 곡개 및 λΉ„κ³΅κ°œ 데이터λ₯Ό λ…ΈμΆœν•©λ‹ˆλ‹€.

{
  unrestrictedPosts(status: [draft, pending]) {
    id
    title
    status
    author {
      id
      name
    }
  }
}

슀칼라 μœ ν˜• AnyScalar λ„μž…

슀칼라 μœ ν˜• AnyScalarλŠ” λ‚΄μž₯ 슀칼라(String, Int, Boolean, Float λ˜λŠ” ID) 쀑 ν•˜λ‚˜λ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€.

μƒˆλ‘­κ²Œ λ„μž…λœ option 및 metaValue(s) ν•„λ“œμ—μ„œ μ‚¬μš©λ©λ‹ˆλ‹€. λ°˜ν™˜λ˜λŠ” λ°μ΄ν„°μ˜ μœ ν˜•μ„ 사전에 μ•Œ 수 μ—†κ³ , 슀칼라 μœ ν˜•μ˜ 합집합이 GraphQL μ‚¬μ–‘μ—μ„œ 아직 μ§€μ›λ˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€.

κΈ΄ ν˜•μ‹μ˜ μ„€μ •

μ„€μ • νŽ˜μ΄μ§€μ˜ μ˜΅μ…˜μ€ νƒ­μœΌλ‘œ κ΅¬λΆ„λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. v0.8λΆ€ν„°λŠ” λͺ¨λ‘λ₯Ό ν•˜λ‚˜μ˜ κΈ΄ νŽ˜μ΄μ§€μ— ν•¨κ»˜ ν‘œμ‹œν•˜λŠ” 것도 κ°€λŠ₯ν•©λ‹ˆλ‹€.

이 λ™μž‘μ„ ν™œμ„±ν™”ν•˜λ €λ©΄ μ„€μ •μ—μ„œ "Have all options in this Settings page be organized under tabs, one tab per module."의 체크λ₯Ό ν•΄μ œν•˜κ³  "Save Changes"λ₯Ό λˆ„λ₯΄μ‹­μ‹œμ˜€:

Checkbox to enable/disable tabs in Settings

그러면 λͺ¨λ“  섀정이 κΈ΄ ν˜•μ‹μœΌλ‘œ ν•¨κ»˜ ν‘œμ‹œλ©λ‹ˆλ‹€:

Settings in long format


ν˜Έν™˜μ„±μ„ κΉ¨λŠ” λ³€κ²½ 사항

릴리슀 v0.8은 이전 λ²„μ „κ³Όμ˜ ν˜Έν™˜μ„±μ„ κΉ¨λŠ” λ³€κ²½ 사항을 ν¬ν•¨ν•©λ‹ˆλ‹€.

μ„€μ • ν˜Έν™˜μ„± λ³€κ²½

λ‹€μŒ CPT의 γ€ŒOptions」 블둝이 μž¬κ΅¬μ„±λ˜μ—ˆμŠ΅λ‹ˆλ‹€:

  • Schema Configurations
  • Custom Endpoints
  • Persisted Queries

이전 v0.7μ—μ„œλŠ” μ΄λŸ¬ν•œ μ—”ν‹°ν‹°μ˜ 단일 Options 블둝에 λ§Žμ€ ꡬ성 ν•­λͺ©μ΄ ν¬ν•¨λ˜μ—ˆμŠ΅λ‹ˆλ‹€. v0.8λΆ€ν„° 이 블둝은 각자의 ꡬ성을 κ°€μ§„ μ—¬λŸ¬ 독립적인 λΈ”λ‘μœΌλ‘œ λΆ„λ¦¬λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

예λ₯Ό λ“€μ–΄ v0.7μ—μ„œλŠ” (μ—”λ“œν¬μΈνŠΈ ν™œμ„±ν™”/λΉ„ν™œμ„±ν™” 외에도) Custom Endpoint Options λΈ”λ‘μ—μ„œ GraphiQL 및 Interactive Schema ν΄λΌμ΄μ–ΈνŠΈλ₯Ό ꡬ성할 수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€:

Options in Custom Endpoint

v0.8λΆ€ν„°λŠ” 이 ꡬ성이 GraphiQL 및 Interactive Schema 블둝을 톡해 μΆ”κ°€λ©λ‹ˆλ‹€:

Options in Custom Endpoint

μ„Έ CPT λͺ¨λ‘μ˜ Options 블둝에 μ €μž₯된 ꡬ성은 μƒˆλ‘œμš΄ ν˜•μ‹μœΌλ‘œ μžλ™μœΌλ‘œ λ§ˆμ΄κ·Έλ ˆμ΄μ…˜λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ v0.8둜 μ—…κ·Έλ ˆμ΄λ“œν•˜κΈ° 전에 μ €μž₯된 ꡬ성을 기둝해 λ‘μ‹œκ³ , μƒˆ λ²„μ „μœΌλ‘œ μ—…κ·Έλ ˆμ΄λ“œν•œ 후에 λ‹€μ‹œ μž…λ ₯ν•˜μ‹œκΈ° λ°”λžλ‹ˆλ‹€.

λΆˆνŽΈμ„ λ“œλ €μ„œ μ£„μ†‘ν•©λ‹ˆλ‹€.

λ˜ν•œ μ„Έ CPT의 λͺ¨λ“  ν•­λͺ©μ— λŒ€ν•΄ WordPress νŽΈμ§‘κΈ°μ— ν‘œμ‹œλ˜λŠ” γ€ŒReset the template」 λ²„νŠΌμ„ 클릭해야 ν•©λ‹ˆλ‹€.

Reset the template in the WordPress editor

λΉ„ν‘œμ€€ λ””λ ‰ν‹°λΈŒ 제거

λΉ„ν‘œμ€€ λ””λ ‰ν‹°λΈŒκ°€ ν”ŒλŸ¬κ·ΈμΈμ—μ„œ μ œκ±°λ˜μ—ˆμŠ΅λ‹ˆλ‹€:

  • @default
  • @removeIfNull
  • @export

제거된 λͺ¨λ“ˆ

λ‹€μŒ λͺ¨λ“ˆμ΄ ν”ŒλŸ¬κ·ΈμΈμ—μ„œ μ œκ±°λ˜μ—ˆμŠ΅λ‹ˆλ‹€:

  • Field Deprecation
  • Configuration Cache
  • Schema Cache
  • Multiple Query Execution
  • Proactive Feedback
  • Schema Editing Access
  • Embeddable fields

ν–₯ν›„ λ‘œλ“œλ§΅

v0.8이 μΆœμ‹œλ˜μ—ˆμœΌλ―€λ‘œ, μ•žμœΌλ‘œμ˜ κ³„νšμ„ μ„ΈμšΈ 수 있게 λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

ν˜„μž¬ κ³„νšμ€ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€:

2021λ…„ 9월에 v0.9 μΆœμ‹œ μ˜ˆμ •, λ‚΄μš©:

  • Custom scalars
  • μ μ ˆν•œ 경우 custom scalarsλ₯Ό μ‚¬μš©ν•œ μ—…λ°μ΄νŠΈλœ GraphQL μŠ€ν‚€λ§ˆ (예: Post.dateλŠ” String λŒ€μ‹  Date μœ ν˜•μ„ λ°˜ν™˜ν•˜κ²Œ λ©λ‹ˆλ‹€)
  • ν™•μž₯ κΈ°λŠ₯ 지원을 μœ„ν•œ μΆ”κ°€ κ°œμ„  사항

κ·Έ ν›„, 연말 λ˜λŠ” 2022λ…„ μ΄ˆμ— v1.0 μΆœμ‹œ μ˜ˆμ •, λ‚΄μš©:

  • ν™•μž₯ ν”ŒλŸ¬κ·ΈμΈ 데λͺ¨
  • ν™•μž₯ κΈ°λŠ₯ 생성에 κ΄€ν•œ μ™„μ „ν•œ λ¬Έμ„œ κ°€μ΄λ“œ
  • wp.orgμ—μ„œ Gato GraphQL ν”ŒλŸ¬κ·ΈμΈ μΆœμ‹œ

ν˜„μž¬ μƒνƒœμ— λŒ€ν•œ μ•Œλ¦Όμ„ λ°›μœΌλ €λ©΄ λ‰΄μŠ€λ ˆν„°λ₯Ό κ΅¬λ…ν•˜μ„Έμš”.


λ¬Έμ œκ°€ λ°œμƒν•˜μ…¨λ‚˜μš”?

v0.8을 μ„€μΉ˜ν•˜κ±°λ‚˜ μ‹€ν–‰ν•˜λŠ” 데 λ¬Έμ œκ°€ μžˆμœΌμ‹œλ©΄ μ €μž₯μ†Œμ—μ„œ 이슈λ₯Ό 생성해 μ£Όμ„Έμš”.


λ‰΄μŠ€λ ˆν„° κ΅¬λ…ν•˜κΈ°

Gato GraphQL의 λͺ¨λ“  μ—…λ°μ΄νŠΈλ₯Ό λ†“μΉ˜μ§€ λ§ˆμ„Έμš”.