通過此示例,可以建立每門課程展示的信息與所需 API 數(shù)據(jù)之間的直接聯(lián)系。

這可以轉(zhuǎn)換為如下圖示:

通過這個(gè)圖表,可以直觀地看出數(shù)據(jù)及其之間的關(guān)系,從而反映在架構(gòu)中。

type Query {
"獲取主頁課程數(shù)組"
tracksForHome: [Track!]!
}
"A track 是一組模塊,講授特定主題"
type Track {
id: ID!
"課程標(biāo)題"
title: String!
"主要作者"
author: Author!
"顯示在課程卡或詳情頁的縮略圖"
thumbnail: String
"課程完成的大致時(shí)長,單位為分鐘"
length: Int
"該課程包含的模塊數(shù)量"
modulesCount: Int
}
"課程的作者"
type Author {
id: ID!
"作者的姓名"
name: String!
"作者的頭像鏈接"
photo: String
}

繪制應(yīng)用程序圖表非常有助于建立應(yīng)用程序 UI 與用戶與數(shù)據(jù)交互之間的聯(lián)系。這兩者在設(shè)計(jì)模式時(shí)至關(guān)重要,應(yīng)該體現(xiàn)在數(shù)據(jù)結(jié)構(gòu)中。

關(guān)鍵在于,架構(gòu)應(yīng)反映圖表。因此,在構(gòu)建模式之前繪制圖表是一種良好的習(xí)慣。尤其在構(gòu)建初始模式時(shí),嘗試為日常使用的現(xiàn)有應(yīng)用程序繪制圖表,將有助于培養(yǎng)“圖表思維”,即將數(shù)據(jù)視作圖表。

針對特定用例的設(shè)計(jì)

前端開發(fā)人員可以通過不同的用戶界面訪問架構(gòu),例如移動(dòng)設(shè)備、桌面、智能電視,甚至智能手表。對于每種前端客戶端,數(shù)據(jù)的展示方式可能會有所不同。這可能會導(dǎo)致嘗試創(chuàng)建通用類型和字段的沖動(dòng),但這樣真的最佳嗎?

在軟件開發(fā)中,通常希望代碼盡可能簡潔,而大家也都熟知 DRY 原則(不要重復(fù)自己)。然而,在設(shè)計(jì)模式時(shí),應(yīng)優(yōu)先考慮客戶的具體用例,無論這些用例多么特定。這并不意味著要放棄通用字段和類型,而是可以同時(shí)兼顧通用性和具體性。

那么,應(yīng)該考慮哪些具體行為和用例呢?答案源于對領(lǐng)域和用戶的深入了解。同時(shí),要記住,隨著應(yīng)用程序的發(fā)展,客戶的具體用例也會隨時(shí)間變化。起初可能是一個(gè)網(wǎng)絡(luò)應(yīng)用程序,但最終可能擴(kuò)展到移動(dòng)客戶端。隨著應(yīng)用的演變,架構(gòu)也應(yīng)隨之調(diào)整。因此,采取以用例和行為為中心的思維方式將是一個(gè)明智的選擇。

命名要具體

命名是一個(gè)挑戰(zhàn),但它在軟件開發(fā)中至關(guān)重要,包括模式設(shè)計(jì)。在為模式創(chuàng)建類型時(shí),常常容易使用最直接的名稱,這可能導(dǎo)致后續(xù)的混亂和重大調(diào)整。

以前面提到的教育平臺為例。如果需要包含課程和課程的評論,可能會傾向于創(chuàng)建一個(gè)名為 Review 的類型。但可以考慮更具體的命名。使用 CourseReview 和 LessonReview 作為類型名,而非簡單的 Review,可以使代碼更加清晰且易于理解。這種做法還允許根據(jù)特定用例和用戶行為進(jìn)行更加精確的構(gòu)建。

下一步行動(dòng)指南

現(xiàn)在您已經(jīng)了解了模式設(shè)計(jì)的這些指導(dǎo)原則,您可以直接開始構(gòu)建您自己的模式!

原文鏈接:Designing Your First GraphQL Schema

上一篇:

AWS 無服務(wù)器架構(gòu)上的 API 實(shí)現(xiàn)

下一篇:

REST API URI 設(shè)計(jì)的 7 條規(guī)則
#你可能也喜歡這些API文章!

我們有何不同?

API服務(wù)商零注冊

多API并行試用

數(shù)據(jù)驅(qū)動(dòng)選型,提升決策效率

查看全部API→
??

熱門場景實(shí)測,選對API

#AI文本生成大模型API

對比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力

25個(gè)渠道
一鍵對比試用API 限時(shí)免費(fèi)

#AI深度推理大模型API

對比大模型API的邏輯推理準(zhǔn)確性、分析深度、可視化建議合理性

10個(gè)渠道
一鍵對比試用API 限時(shí)免費(fèi)