跳到主要內容

發表文章

目前顯示的是有「rest-api」標籤的文章

如何使用Go語言實作RSETful Server: Creating a RESTful API With Golang

前言 要使用Go建立一個RESTful的Web Server非常地簡單, 只要使用內建的模組net/http就能輕易達成 首先, 匯入相關套件 package main import ( "encoding/json" "net/http" ) 添加兩個路由"/", "/users", 以及實作兩個handler來處理對應的請求 func handler(w http.ResponseWriter, request *http.Request) { w.Write([]byte("Hello world.")) } func usersHandler(w http.ResponseWriter, request *http.Request) { data := make(map[string]interface{}) data["users"] = []interface{}{ map[string]interface{}{ "name": "andy", "pwd": "123456", }, } jsonByte, _ := json.Marshal(data) w.Header().Set("Content-Type", "application/json") w.Write(jsonByte) } func main() { http.HandleFunc("/", handler) http.HandleFunc("/users", usersHandler) ... 給定要聽的port http.ListenAndServe(":3000", nil) 測試 localhost:3000  測試localhost:3000/users...

Azure Function 從0到1 新手教學, 快速實作REST Api: How to create your first REST Api by Azure Function in Node.Js

前言 Azure Function 是微軟提供的無伺服器服務(類似於AWS上的Lambda) 使開發人員無需花太多心力去維護伺服, 器部屬時也不用特別考慮環境如OS, Driver, Hotfix 等等, 只須專心於商用邏輯的設計 環境 Runtime使用Node.js 前置作業 安裝VS Code Azure Function Extension 建立開發環境 首先, 使用Azure Function Extension開一個專案,  VS Code 會根據選擇的開發語言來設置開發環境 這邊示範使用JavaScript來建立專案 選擇HTTP Trigger的範例來開發 選擇Authorization Level, 若想要完全開放給所有人使用可以選擇Anonymous 替Function命名 最後, 若選則Javascript當作開發語言的話, 工作目錄會長這樣 如何更改Authorization Level來保護API? 基本上目前支援以下三種方式: Anonymous Function Admin 若不想開放給所有人用的話, 可以將function.json裡的authLevel修改為 function   { "bindings" : [ { "authLevel" : "function" , "type" : "httpTrigger" , "direction" : "in" , "name" : "req" , "methods" : [ "get" , "post" ], "route" : ...

Enable docker remote API

前言 一般來說, 開發者可以在各自的終端機上執行docker command去操作容器, 但透過remote api開發者還可以撰寫特定的應用程式透過HTTP請求, 直接去存取宿主機上docker的所有相關服務, 對於開發自動化程式的朋友們, 相信這個功能絕對是非常的實用 要使用remote api之前, 必須先啟用它 啟用 啟用方式非常簡單, 去docker的設定檔把Port打開就好了 sed 's/-H fd:\/\//-H fd:\/\/ -H=tcp:\/\/0.0.0.0:3489/g' /lib/systemd/system/docker.service > /lib/systemd/system/docker.service.new mv /lib/systemd/system/docker.service /lib/systemd/system/docker.service.old mv /lib/systemd/system/docker.service.new /lib/systemd/system/docker.service 最後別忘記重啟Docker systemctl daemon-reload service docker restart 以上~

[簡易教學] 如何串接Flickr API 實做照片搜尋程式

前言 在Flickr上面的照片可以簡單分成Public以及Private兩種, 若想要取得個使用者人私有的照片, 必須先取得擁有者的授權, 相反的, 公開的照片就不需要 本篇文章介紹如何使用Flickr API 透過Oauth 1.0a的認證機制進而取得私有照片 取得私有照片, 首先, 需要到官網註冊應用程式 https://www.flickr.com/services/apps/create/apply/ 註冊完成後, 會得到 Key: fba9dc9235adf433742f0beee59a11 Secret: 311231123ab23d611c942 取得Request Token Request Url https://www.flickr.com/services/oauth/request_token? oauth_consumer_key=5c5a00165ea0999178645f2e9fb46570& oauth_signature_method=HMAC-SHA1& oauth_timestamp=1539671009& oauth_nonce=4qXlqZ& oauth_version=1.0& oauth_signature=qFwCz7YMBmjIMQGIxyPVfTMyvrA= 回傳 lback_confirmed=true& oauth_token= 72157696618862120-d3975ffa52e2c7b6 & oauth_token_secret= 66b28eac5aedf66b 基於oauth_token讓使用者認證, 取得oauth_verifier Request Url https://www.flickr.com/services/oauth/authorize? oauth_token= 72157696618862120-d3975ffa52e2c7b6 & perms=read 回傳 https://app.getpostm...

[簡易教學] 如何使用 OneDrive API 搜尋雲端上的檔案(以Postman為例)

本篇文章簡單的介紹, 如何使用OneDrive API來取得特定的檔案(使用POSTMAN) 基本上, 使用OneDrive API取得使用者任何資料都需要一個認證過程來取得資料擁有者的授權, 而要完成這個授權的流程 首先, 需要在微軟的網站上註冊你的應用程式 https://apps.dev.microsoft.com/#/appList 註冊完之後我們會獲得 Application ID :  1ba84ab3-12fe-4c1e-86f2-0c5636c389ca Key : kHOUAH^&H= 再來, 加入Redirect URL 1. 選擇Add Platform 2. 選擇Web Application 然後加入https://www.getpostman.com/oauth2/callback 如下 取得授權(打開POSTMAN) 1. 認證方式選擇Oauth 2.0 2. 打開Get New Access Token的對話框 輸入相關資料 Auth Url: https://login.microsoftonline.com/common/oauth2/v2.0/authorize Access Token Url: https://login.microsoftonline.com/common/oauth2/v2.0/token Client ID: 你的Application ID Client Secret: 你的Application Key Scope: files.readwrite offline_access Grant Type: Authorization Code (此方式會額外得到一組refresh token, 將來若access token 過期, 可以用它來索取新的access token) 授權結束之後會取得一組access token, 對於OneDrive的後端來說, 夾帶這個token的API請求就是合法的請求, 因此可以有條件地存取資源 開始存取資源(搜尋檔案) GET https://graph.microsoft.com/v1.0/me/dri...

[AWS懶人包] Serverless: API Gateway

API Gateway API Gateway有點像是水龍頭的概念, 每個水龍頭後面可能各自連接著不同的水源, 用的人不需要知道後面管線怎麼牽的, 如果想要山泉水就去轉開山泉水的水龍頭, 如果想要自來水就去轉開自來水的水龍頭 我們可以在API Gateway上定義RESTful API, 被後再介接Lambda或是其他的web service, 使API Gateway 成為這些網路資源統一對外的出口 Cache 如果想要增加Performance, 我們可以額外付費去啟用快取的功能, 對於相同的請求, 就可以從塊取拿答案直接回覆 (步驟 Stages > Your_stage > Settings ) Throttle 我們可以限制API的呼叫次數, 以避免被有心人士惡意攻擊 (步驟Stages > Your_Stage > Settings) Cross Origin Resource Sharing(CORS) 在Same-origin Policy的機制下, 為了避免Cross-site Script(XSS)攻擊, 大部分的瀏覽器只允許存取與頁面相同Domain下的資源 CORS 可以讓瀏覽器放寬這個限制執行跨域請求