邊學邊做,簡單的 GraphQL 例項

2022-02-25 01:12:56 字數 2012 閱讀 2611

專案中有功能要呼叫 api,對方 api 用的是 graphql 實現,就簡單學了下,感嘆技術進步真快,facebook 發明的這玩意兒咋這麼牛逼,使前端開發人員變得主動起來,想要什麼介面、返回什麼結果,可以自己通過查詢構建,而不是以前被動接受 restful api 標準,不得不說是 api 的革命,graphql 的語法強大且靈活,ide智慧型提示也很棒,入門容易、邊學邊用。

這裡用三個例項演示 graphql 應用:

查詢字串

mutation userlogin(

$account: string!,

$password: string!)

}}

graphql query string

變數

graphql variables

接收各種引數,通過變數賦值,執行成功返回乙個字串,在 graphiql 中編寫查詢字串及除錯(下圖)

使用者尚未登入?因為介面要求登入成功後,以後的請求都要在 header 中帶上 token,edit http headers 即可

查詢字串

mutation submitbetting($game_id: int!, 

$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 query string

變數

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...