翻譯 | 《JavaScript Everywhere》第2章 項目簡介(^_^)javascript
寫在最前面
你們好呀,我是毛小悠,是一位前端開發工程師。正在翻譯一本英文技術書籍。前端
爲了提升你們的閱讀體驗,對語句的結構和內容略有調整。若是發現本文中有存在瑕疵的地方,或者您有任何意見或者建議,能夠在評論區留言,或者加個人微信:code_maomao,歡迎相互溝通交流學習。java
(σ゚∀゚)σ..:*☆哎喲不錯哦git
第2章 項目簡介
想象一下,你站在當地的一家小餐館的店鋪前,決定在那裏點一個三明治。服務員把你點的菜都寫在一張紙上,而後把紙遞給廚師。廚師閱讀訂單,使用單獨的配料來製做三明治,並將三明治交給服務員。服務員會把三明治拿給你吃。若是你想要一些甜點,這個過程會再次重複。github
應用程序編程接口(API)是一組規範,它容許一個計算機程序與另外一個計算機程序進行交互。shell
Web API的工做方式與訂購三明治的方式幾乎相同。客戶端請求一些數據,該數據經過超文本傳輸協議(HTTP)傳輸到Web服務器應用程序,Web服務器應用程序接受請求並處理數據,而後將數據經過HTTP發送給客戶端。在本章中,咱們將探討Web API的普遍內容,並經過將starter API項目克隆到本地計算機上來開始咱們的開發。可是,在進行此操做以前,讓咱們先探討將要構建的應用程序的需求。數據庫
在本書中,咱們將構建一個名爲Notedly的社交筆記應用程序。用戶將可以建立一個賬戶,用純文本或Markdown編寫筆記,編輯其筆記,查看其餘用戶筆記的摘要以及「收藏」其餘用戶的筆記。npm
在本書的這一部分中,咱們將開發支持該應用程序的API。在咱們的API中:用戶將可以建立筆記、閱讀、更新和刪除他們建立的筆記。用戶將可以查看其餘用戶建立的筆記的摘要,並閱讀其餘人建立的單個筆記,儘管他們將沒法更新或刪除它們。用戶將可以建立賬戶,登陸和註銷。用戶將可以檢索其我的資料信息以及其餘用戶的公共我的資料信息。編程
Markdown後端
Markdown是一種流行的文本標記語言,在編程社區以及諸如iA Writer,Ulysses,Byword等文本應用程序中很常見。要了解有關Markdown的更多信息,請訪問 Markdown Guide網站。
儘管這聽起來不少,但在本書的這一部分中,我將其細分爲小塊。一旦學會了執行這些類型的交互,就能夠將它們應用於構建各類API。
咱們將如何構建它
爲了構建咱們的API,咱們將使用 GraphQL API查詢語言。GraphQL是一個開放源代碼的規範,於2012年在Facebook上首次建立。GraphQL的優點在於它容許客戶端精確地請求其所需的數據,從而大大簡化並限制了請求的數量。當咱們向移動客戶端發送數據時,這也提升了明顯的性能優點,由於咱們只須要發送客戶端所需的數據。在本書的大部份內容中,咱們將探索如何編寫、開發和使用GraphQL API。
什麼是REST?
若是你熟悉Web API術語,那麼你可能據說過REST(表明狀態傳輸)API。REST體系結構一直(並將繼續是)API的主要格式。與GraphQL不一樣,這些API依賴於URL結構和查詢參數來向服務器發出請求。儘管REST仍然很重要,但GraphQL的簡單性,圍繞GraphQL的工具的健壯性以及經過發送有限的數據的潛在性能提高,使GraphQL成爲現代平臺的首選。
開始
在開始開發以前,咱們須要將項目啓動程序文件複製到咱們的電腦上。該項目的 源代碼 包含咱們開發應用程序所需的全部腳本和對第三方庫的引用。要將代碼克隆到本地計算機上,請打開終端,導航到項目保存的目錄,也就是 git clone
項目庫的目錄,並使用npm install
來安裝依賴項 。建立一個顯目的目錄名,可使本書的代碼層次分明。
$ cd Projects $ mkdir notedly && cd notedly $ git clone git@github.com:javascripteverywhere/api.git $ cd api $ npm install
安裝第三方依賴項
經過製做本書的入門代碼的副本而且在目錄中運行npm install
,你就不須要再由於任何第三方依賴而再次運行它。
該代碼的結構以下:
-
/src
這是你進行開發的目錄。
-
/solutions
該目錄包含每章的解決方案。若是你卡住了,這些能夠供你參考。
-
/final
該目錄包含最終的工做項目。
如今,你已經在本地計算機上得到了代碼,你將須要複製項目的.env
文件。該文件是保存特定於環境的信息或項目私有數據(例如數據庫URL,客戶端ID和密碼)的地方。所以,你永遠不須要將其加入源代碼管理。你須要本身的.env 文件副本 。爲此,請在api 目錄中的終端中輸入如下內容 :
cp .env.example .env
如今,你應該在目錄中看到一個 .env
文件。你無需對該文件作任何事情,可是隨着API後端的開發,咱們將向其中添加信息。 將該文件添加到.gitignore文件
以確保你不會無心中提交了.env
文件。
求助,我看不到.env文件!
默認狀況下,操做系統會隱藏以句點開頭的文件,由於這些文件一般由系統使用,而不是給最終用戶使用。若是看不到.env
文件,請嘗試在文本編輯器中打開目錄。該文件應該在編輯器的文件瀏覽器中可見。或者, 在終端窗口中鍵入ls -a
,會在當前工做目錄中列出全部的文件。
結論
API爲數據從數據庫流向應用程序提供了接口。所以,它們是現代應用程序的中堅力量。經過使用GraphQL
,咱們能夠快速開發基於可擴展API的現代應用程序。在下一章中,咱們將經過使用Node.js
和Express
構建Web服務器來開始API開發。
譯者語和書籍詳情
若是有理解不到位的地方,歡迎你們糾錯。若是以爲還能夠,麻煩您點贊收藏或者分享一下,但願能夠幫到更多人。
有看的麼?有看的麼?有看的麼?
有的話,能夠點個贊麼?讓我知道有人在看。(ಥ_ಥ)
英文書名:《JavaScript Everywhere: Building Cross-Platform Applications with GraphQL, React, React Native, and Electron》
中文譯名:《隨處可見的JavaScript:使用GraphQL、React、React Native和Electron構建跨平臺應用程序》
做者 :Adam D. Scott
譯者:毛毛
出版時間:2020年2月6日。
翻譯時間:2020年10月10日
書封面:
目錄
- 前言
- 第1章 咱們的開發環境
- 第2章 API簡介
- 第3章 具備Node和Express的Web應用程序
- 第4章 咱們的第一個GraphQL API
- 第5章 數據庫
- 第6章 CRUD操做
- 第7章 用戶賬戶和身份驗證
- 第8章 用戶操做
- 第9章 詳細信息
- 第10章 部署咱們的API
- 第11章 用戶界面和React
- 第12章 使用React構建Web客戶端
- 第13章 設置應用程序樣式
- 第14章 使用Apollo Client
- 第15章 Web身份驗證和狀態
- 第16章 建立,讀取,更新和刪除操做
- 第17章 部署Web應用程序
- 第18章 帶Electron的桌面應用程序
- 第19章 將現有的Web應用程序與Electron集成
- 第20章 Electron部署
- 第21章 使用React Native建立移動應用程序
- 第22章 移動應用程序shell
- 第23章 GraphQL和React Native
- 第24章 移動應用程序認證
- 第25章 移動應用程序發佈
- 後記
- 附錄A.在本地運行API
- 附錄B.在本地運行Web App
本文由博客羣發一文多發等運營工具平臺 OpenWrite 發佈