Architecture Decision Record

Active theme: Light

← Misalan rikodin shawara

Rikodin shawarar gine-gine: API mai amfani da JSON ko gRPC

Matsayi

An karɓa

Mahalli

Muna ƙirar API don sabon sabis wanda abokan ciniki da yawa za su yi amfani da shi. Mun kasance muna la’akari da zaɓuɓɓuka biyu don aiwatar da API: amfani da JSON ta HTTP ko amfani da gRPC.

JSON ta HTTP hanya ce da ake amfani da ita sosai wajen gina API, kuma harsunan shirye-shirye da tsarin aiki da yawa suna goyon bayanta. Wannan hanya mai sauƙi ce, mai nauyi ƙanƙani, kuma mai sauƙin fahimta, wanda ya sa ta zama zaɓi mai kyau ga ayyuka da yawa. Duk da haka, tana iya zama ba ta da inganci kamar sauran zaɓuɓɓuka, musamman wajen sarrafa bayanai masu yawa.

gRPC kuwa, sabuwar fasaha ce da ke ba da hanya mafi inganci ta gina API. Tana amfani da jerin binary don aika bayanai, wanda zai iya zama mafi sauri da ƙarami fiye da amfani da JSON. gRPC kuma tana goyon bayan yawo ta bangarori biyu, wanda ya sa ta zama zaɓi mai kyau ga aikace-aikacen lokaci-na-gaske.

Shawara

Bayan la’akari da fa’idodi da rashin fa’idodin zaɓuɓɓukan biyu, mun yanke shawarar amfani da gRPC don API ɗinmu. Ko da yake JSON ta HTTP zaɓi ne mafi sauƙi, mun yi imanin cewa gRPC za ta ba da mafita mafi inganci kuma mai iya faɗaɗuwa ga sabis ɗinmu. Muna kuma hasashen cewa API ɗinmu zai sarrafa bayanai masu yawa, kuma jerin binary na gRPC zai fi inganci don wannan amfani.

Bugu da ƙari, mun yi imanin cewa goyon bayan gRPC ga yawo ta bangarori biyu zai amfani aikace-aikacen lokaci-na-gaske da za mu iya haɓakawa a nan gaba.

Sakamako

Ta hanyar zaɓar gRPC, za mu buƙaci amfani da wasu kayan aiki da laburare daban-daban don gina API ɗinmu idan aka kwatanta da amfani da JSON ta HTTP. Wannan na iya buƙatar ƙarin lokaci da ƙoƙari don koyo da aiwatar da waɗannan fasahohi. Bugu da ƙari, abokan ciniki da ke son amfani da API ɗinmu za su buƙaci amfani da laburare masu dacewa da gRPC, waɗanda ba za a iya samun goyon baya ga su sosai kamar laburaren JSON ta HTTP ba.

Duk da haka, mun yi imanin cewa fa’idodin amfani da gRPC sun fi waɗannan yiwuwar rashin fa’ida, kuma muna da tabbacin cewa wannan shawara za ta haifar da API mafi inganci kuma mai iya faɗaɗuwa.