專案中有功能要呼叫 api,對方 api 用的是 graphql 實現,就簡單學了下,感嘆技術進步真快,facebook 發明的這玩意兒咋這麼牛逼,使前端開發人員變得主動起來,想要什麼介面、返回什麼結果,可以自己通過查詢構建,而不是以前被動接受 restful api 標準,不得不說是 api 的革命,graphql 的語法強大且靈活,ide智慧型提示也很棒,入門容易、邊學邊用。
這裡用三個例項演示 graphql 應用:
查詢字串
mutation userlogin(graphql query string$account: string!,
$password: string!)
}}
變數
graphql variables接收各種引數,通過變數賦值,執行成功返回乙個字串,在 graphiql 中編寫查詢字串及除錯(下圖)
使用者尚未登入?因為介面要求登入成功後,以後的請求都要在 header 中帶上 token,edit http headers 即可
查詢字串
mutation submitbetting($game_id: int!,graphql query string$game_type_id: int!,
$game_cycle_id: int!,
$bet_info: string!,
$bet_mode: betmodeenum,
$bet_multiple: int!,
$bet_percent_type: betpercenttypeenum!,
$is_follow: boolean,
$follow_commission_percent: int,
$follow_secret_type: int
)
變數
graphql variables接收乙個條件物件 input,成功返回記錄列表,根型別是 query 可省略,在 graphiql 中編寫查詢字串及除錯(下圖)
查詢字串,這個介面只有整形和布林型查詢引數,我就沒使用變數(如果是字串引數最好使用變數,因為引數值中含有引號,會引起查詢字串語法錯誤,甚至注入風險)。
)graphql query string}}
傳遞三個引數分別是:
query:查詢文件,必填,我們之前在 graphiql 中已除錯好。
variables:變數,選填,鍵值對集合。
operationname:操作名稱,選填,查詢文件有多個操作時必填。
get的話,放在 url 引數中,格式:
?query=查詢語句&operationname=操作名稱&variables=變數集合
}", //查詢字串
"operationname": "", //操作名稱,選填,查詢文件有多個操作時必填
"variables": //物件集合,選填
}下面截圖是在 postman 中除錯介面
看上去沒問題,可以將http請求封裝,放進專案中
我只學了些皮毛,當然一般的專案也不會用太複雜的語法,以後有機會再學學服務端的配置。
Spring security 邊做邊學
之前遇到乙個需求,在執行時決定允許訪問的url的角色。而不是在xml裡配置。解決方案是實現自己的voter類。現在遇到另乙個需求,應用有2個不同的登入頁面。比如 普通使用者 通過 demo user login.jsp,而管理員 通過 demo admin login.jsp 登入系統。之後,進入不...
邊學邊做很快樂!
三周前開始做小專案,用的是vb。因為以前沒有接觸過,所以是邊學邊做。寫介面的時候首先遇到的問題就是不熟悉控制項。我首先使用了listbox,好不容易把它整明白了,我們的經理又提出了乙個更有效的方案,所以不得不重新開始做,這次要使用完全不了解的treeview,對於用過的人來說很簡單,但對於我來說就 ...
邊學邊做ROR(form for標籤)
之前版本,如3.0.7這樣 form for bolg,blog,url html 不會有問題但是3.1,會小小折磨下你。1.必須寫成 form for 否則不輸出這個form的,頁面一片空白,鬱悶過沒有!2.form for record or name or array,args,proc bl...