RAML vs API Blueprint
從 RAML 轉至 API Blueprint 之後發現兩個各有優劣之處,在這裡稍微敘述一下。 RAML RAML 是最終被我唾棄的 API 文件撰寫風格,我很傷心我花了時間在這上面 :(。 優點 功能性多、支援多種情況:能夠應付比較複雜的結構,如 HTTP 驗證等⋯的需求,且能夠有效地重複使用部分設置。檔案引用方便:你能夠把 API 文件拆開來,像是一個服...
API Blueprint 撰寫教學
API Blueprint 是一個 API 文件撰寫風範,而且也有相關的工具可以將寫好的文件轉換成網頁,其實 API Blueprint 的寫法十分地簡單,先讓我們從開頭開始。 中繼資料 FORMAT: 1A 所謂的中繼資料即是 鍵名:值,從上述範例中你可以看到我們將 FORMAT 賦予一個 1A 的值,FORMAT 關鍵字是用來表示這份 API ...
別用 RAML 撰寫你的 API 文件,千萬不要。
這篇文章專門講解我如何被 RAML 騙到入坑然後放棄的過程。最近在找 API 文件工具,然後就剛好看見了 RAML,RAML 是一個撰寫 API 文件的格式,風格是延續 YAML 的。 現在讓我們看看官方網站的示意圖,你會發現:「哇,這根本夭壽棒啊!」。 所以我才被騙進來了,不是嗎?如果你現在打算用 RAML,請留步。 撰寫風格一般 這不是我覺得被騙的主因,...
Hash 你的 ID 吧!加密、縮短你的項目編號
有時候你可能會不想讓使用者看見文章、會員流水號(例如:/user/1、/user/2),這個時候你就可以用到 hashids 這個輕量級套件。 hashids 可以將陣列、數字、字串透過預先設置好的鹽加密,例如 347 可以被加密成 yr8,如此一來客戶端就沒辦法揣測下一個編號是多少,也避免了有心人士掃一遍你的網站。 hashids 支援很多程式語言,也可以...
JSON 轉換成 Golang
在 Golang 上若要讀取 JSON 就必須建立相對應的建構體才行,而 JSON-to-Go 線上工具解決了手動新增建構體的困擾,這個工具是由 JavaScript 撰寫的,相關原始碼可以在這邊的 Github 看見。 工具操作 先來到 JSON-to-Go 頁面,然後頁面左下角是輸入 JSON 結構的地方,輸入後會自動轉成右邊的 Go 結構體。 讓我們假...
RESTful API 的常用 HTTP 狀態碼
很常用到這些狀態碼,但是好像沒有人寫簡單點的說明,所以就自己寫了一個,以後應該會常常回來看。 成功 - 2xx 任何成功的狀態碼都是 2xx 開頭。 200 - 成功 請求已經成功,並且有返回內容。 201 - 已建立 請求成功,而且在伺服器上新建了一個資源(例如新增文章、留言)。 202 - 已接受 伺服器接受了一個請求,但伺服器可能沒辦法馬上完成,例如需...
3. 鍵盤、手把和滑鼠處理——在 Golang 透過 Ebiten(炸蝦)來製作 8-Bit 遊戲!
一個不能和使用者互動的遊戲會令人感到十分地無聊,不是嗎?這次你會學到如何在 Ebiten 中偵測鍵盤或是滑鼠和手把的輸入,所以你就可以在玩家按下特定按鍵的時候進行相關回饋。 現在讓我們回到第一章的範例,因為那個範例就足夠應用在這次的教學了: package main import ( "github.com/hajimehoshi/ebiten" "gith...
從 Atom 跳到 Visual Studio Code 編輯器
以前最討厭的大概就是微軟的 IDE 跟 Dreamweaver 了吧,自從離開 Visual Basic 6 生活圈之後我就很少碰到微軟的產品了,除了玩遊戲才會開一下 Windows,不然其他時間都是在用 Macbook。 不過自從 Windows 10 跟 Surface Studio 出來之後,能夠明顯地感受到微軟正在慢慢取代蘋果以前的位置,這樣說也許太...
2. 畫布、顏色與矩形——在 Golang 透過 Ebiten(炸蝦)來製作 8-Bit 遊戲!
在上一章我們提到了如何建立一個基本的遊戲框架,但那還不足以構成一個遊戲(畢竟只有一串文字嘛),在那之前,我們需要知道更多有關遊戲畫面的資訊,所以接下來要提到的就是「螢幕畫布」。 螢幕畫布是整個遊戲中最重要的地方,螢幕畫布用來呈現任何你能夠看見的東西,在你不注意的時候螢幕畫布可能已經更新了數百次,但是因為速度夠快所以你並不會察覺。 現在讓我們接續上次的程式碼吧...
1. 初始化——在 Golang 透過 Ebiten(炸蝦)來製作 8-Bit 遊戲!
Ebiten(海老天)是由一個基於 Golang 的 8 Bit 遊戲引擎,至於什麼是「海老天」呢⋯⋯其實就是「炸蝦」或「天婦羅」啦。 順帶一提,Ebiten 是跨平台支援的,看看官網上的說明,包含這些平台: 桌上型系統:Windows, Mac OS X, Linux移動型系統:Android, iOS網頁瀏覽器:Chrome and Firefox (G...
目前第 4 頁,共有 6 頁