成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識(shí)庫 > graphql---go http請(qǐng)求使用詳解

graphql---go http請(qǐng)求使用詳解

熱門標(biāo)簽:貴州電話智能外呼系統(tǒng) 江蘇呼叫中心外呼系統(tǒng)有效果嗎 杭州人工智能電銷機(jī)器人費(fèi)用 官渡電銷外呼管理系統(tǒng)怎么收費(fèi) 谷歌美發(fā)店地圖標(biāo)注 利用地圖標(biāo)注位置 地圖區(qū)域圖標(biāo)注后導(dǎo)出 赤峰電銷 400開頭電話怎樣申請(qǐng)

1. Graphql是什么?

GraphQL是Facebook 在2012年開發(fā)的,2015年開源,2016年下半年Facebook宣布可以在生產(chǎn)環(huán)境使用,而其內(nèi)部早就已經(jīng)廣泛應(yīng)用了,用于替代 REST API。facebook的解決方案和簡(jiǎn)單:用一個(gè)“聰明”的節(jié)點(diǎn)來進(jìn)行復(fù)雜的查詢,將數(shù)據(jù)按照客戶端的要求傳回去,后端根據(jù)GraphQL機(jī)制提供一個(gè)具有強(qiáng)大功能的接口,用以滿足前端數(shù)據(jù)的個(gè)性化需求,既保證了多樣性,又控制了接口數(shù)量。

GraphQL并不是一門程序語言或者框架,它是描述你的請(qǐng)求數(shù)據(jù)的一種規(guī)范,是協(xié)議而非存儲(chǔ),GraphQL本身并不直接提供后端存儲(chǔ)的能力,它不綁定任何的數(shù)據(jù)庫或者存儲(chǔ)引擎,它可以利用已有的代碼和技術(shù)來進(jìn)行數(shù)據(jù)源管理。

一個(gè)GraphQL查詢是一個(gè)被發(fā)往服務(wù)端的字符串,該查詢?cè)诜?wù)端被解釋和執(zhí)行后返回JSON數(shù)據(jù)給客戶端。

2. Graphql和Rest Api的對(duì)比

RESTful:服務(wù)端決定有哪些數(shù)據(jù)獲取方式,客戶端只能挑選使用,如果數(shù)據(jù)過于冗余也只能默默接收再對(duì)數(shù)據(jù)進(jìn)行處理;而數(shù)據(jù)不能滿足需求則需要請(qǐng)求更多的接口。

GraphQL:給客戶端自主選擇數(shù)據(jù)內(nèi)容的能力,客戶端完全自主決定獲取信息的內(nèi)容,服務(wù)端負(fù)責(zé)精確的返回目標(biāo)數(shù)據(jù)。提供一種更嚴(yán)格、可擴(kuò)展、可維護(hù)的數(shù)據(jù)查詢方式。

3. Graphql在go語言中使用

1.定義 graphql 用戶類型userType; Fields為user參數(shù)

/*
定義 graphql 用戶類型userType; Fields為user參數(shù)
 */
var userType = graphql.NewObject(
  graphql.ObjectConfig{
   Name: "User",
   Fields: graphql.Fields{
     "id": graphql.Field{
      Type: graphql.String,
     },
     "name": graphql.Field{
      Type: graphql.String,
     },
   },
  },
)

2.定義graphql 查詢類型 Resolve 通過Id 獲取用戶信息

/*
定義graphql 查詢類型 Resolve 通過Id 獲取用戶信息
 */
var queryType = graphql.NewObject(
  graphql.ObjectConfig{
   Name: "Query",
   Fields: graphql.Fields{
     "user": graphql.Field{
      Type: userType,
      Args: graphql.FieldConfigArgument{
        "id": graphql.ArgumentConfig{
         Type: graphql.String,
        },
      },
      Resolve: func(p graphql.ResolveParams) (interface{}, error) {
        idQuery, isOK := p.Args["id"].(string)
        if isOK {
         return data[idQuery], nil
        }
        return nil, nil
      },
     },
   },
  })

3.定義 graphql schemad對(duì)象

var schema, _ = graphql.NewSchema(
  graphql.SchemaConfig{
   Query: queryType,
  },
)

4.執(zhí)行查詢方法

func executeQuery(query string, schema graphql.Schema) *graphql.Result {
  result := graphql.Do(graphql.Params{
   Schema:    schema,
   RequestString: query,
  })
  if len(result.Errors) > 0 {
   fmt.Printf("wrong result, unexpected errors: %v", result.Errors)
  }
  return result
}

5.main 函數(shù)執(zhí)行:

import (
  "encoding/json"
  "fmt"
  "io/ioutil"
  "net/http"
  "github.com/graphql-go/graphql"
)
type user struct {  ID  string `json:"id"`  Name string `json:"name"`}var data map[string]user
func main() {
  data = make(map[string]user)
  data["1"] = user{
   ID:  "1",
   Name: "wt",
  }
  data["2"] = user{
   ID:  "2",
   Name: "go",
  }
  http.HandleFunc("/graphql", func(w http.ResponseWriter, r *http.Request) {
   result := executeQuery(r.URL.Query().Get("query"), schema)
   json.NewEncoder(w).Encode(result)
  })
  http.ListenAndServe(":8080", nil)
}

4. 結(jié)果輸出,總結(jié)

游覽器輸入:

http://127.0.0.1:8080/graphql?query={user(id:"1"){id,name}}

輸出結(jié)果:

{"data":{"user":{"id":"1","name":"wt"}}}

使用 graphql 再也不需要對(duì)接口的文檔進(jìn)行維護(hù)了。

go語言庫地址:https://github.com/graphql-go/graphql

補(bǔ)充:golang使用http發(fā)送graphql請(qǐng)求

請(qǐng)求內(nèi)容:

query格式:

query UnitList($Ids: String!, $offset: Int! ){UnitList(searchParams: {Ids: $Ids, offset: $offset}, searchType: BASE) {list { score score_addbusinesstravel UnitTags commentScore } isOver count}}

data數(shù)據(jù):

{"Ids":"123","offset":0}

get/post發(fā)送http請(qǐng)求:

package main
import (
 "fmt"
 "strings"
 "net/http"
 "io/ioutil"
)
func main() {
 url := "http://**************/graphql/"
 method := "POST"  / "GET"
 payload := strings.NewReader("{\"query\":\"query UnitList($Ids: String!, $offset: Int!,){UnitList(searchParams: {Ids: $Ids, offset: $offset}, searchType: BASE) {list { score score_addbusinesstravel UnitTags commentScore } isOver count}}\",\"variables\":{\"luIds\":\"123\",\"offset\":0}}")
 client := http.Client {
 }
 req, err := http.NewRequest(method, url, payload)
 if err != nil {
  fmt.Println(err)
 }
 req.Header.Add("Content-Type", "application/json")
 res, err := client.Do(req)
 defer res.Body.Close()
 body, err := ioutil.ReadAll(res.Body)
 fmt.Println(string(body))
}

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • Golang 實(shí)現(xiàn)分片讀取http超大文件流和并發(fā)控制
  • go Http Post 發(fā)送文件流案例
  • 在Golang中使用http.FileServer返回靜態(tài)文件的操作
  • 解決golang http.FileServer 遇到的坑
  • golang HTTP 服務(wù)器 處理 日志/Stream流的操作
  • 在go文件服務(wù)器加入http.StripPrefix的用途介紹

標(biāo)簽:松原 宜春 武漢 鷹潭 河池 泰安 保定 黔西

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《graphql---go http請(qǐng)求使用詳解》,本文關(guān)鍵詞  graphql---go,http,請(qǐng)求,使用,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《graphql---go http請(qǐng)求使用詳解》相關(guān)的同類信息!
  • 本頁收集關(guān)于graphql---go http請(qǐng)求使用詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    91成人看片片| 日本91av在线播放| 精品福利视频导航大全| 国模私拍一区二区三区| 国产福利片一区二区| 国产精品久久久久久久久免费樱桃| 成人精品动漫| 久久久久se| www.久久伊人| 日韩欧美国产一二三区| 亚洲第一页av| 韩国av电影在线观看| 欧美日本一区二区在线观看| 国产视频精品免费播放| 欧美美女15p| 亚洲大尺度在线观看| 亚洲精品无码一区二区| 97超级碰碰碰久久久| 国产不卡免费视频| 日韩精品中文字幕一区二区三区| 欧美成人a∨高清免费观看| 无码h肉动漫在线观看| 高清精品在线| 精品一区二区三区日本| av成人免费看| 中文字幕欧美区| 人妻妺妺窝人体色www聚色窝| 亚洲资源在线| 日本成人免费在线观看| 日韩一级片大全| 国产欧美视频在线观看| 精品久久一区二区三区| 五福影院新址进入www1378| 久久久久成人网站| 国产精品久久国产三级国电话系列| 俺去啦俺在线观看| 美女一级全黄| 亚洲熟妇无码乱子av电影| 污污网站免费在线观看| 国产精品88888| 日本一区二区三区电影| 成人精品动漫| 麻豆视频国产| 国产大片精品免费永久看nba| 日产精品一区二区| 欧美精品久久久久久久自慰| 欧美少妇性生活视频| 国产黄色美女视频| 亚洲特黄一级片| 天天舔夜夜操| 黄色一级片在线| 欧美14一18处毛片| 91国产精品91| 中文字幕精品一区久久久久| 欧美中在线观看| 丰满人妻av一区二区三区| 国产精品视频一区二区三区| 欧美成人女星排行榜| 久久福利一区二区| 野外做受又硬又粗又大视频√| 精品全国在线一区二区| 国产毛片aaa| 国产精品视频麻豆| 日韩欧乱色一区二区三区在线| 国产香蕉视频在线看| 国产探花在线观看视频| 国产精品美女久久久久| 91老司机精品视频| 欧美成人一区在线| 四虎国产精品永久免费观看视频| 一区二区国产在线观看| 日韩精品久久久久久久| 色噜噜狠狠色综合网图区| 日韩欧美高清一区二区三区| 日本三级日本三级日本三级极| 国产福利在线免费| 日本午夜激情视频| xxxxbbbb欧美| 日韩av免费在线播放| 成人深夜视频在线观看| 欧美丝袜丝交足nylons172| 亚洲爱情岛论坛永久| 欧美久久久久久| 亚洲国产精品第一页| 男人天堂网站在线| 欧美日韩视频免费| 欧美激情黄色片| 国产一级片免费| 91视频在线免费| 国产日韩欧美亚洲一区| 特级做a爱片免费69| 亚洲综合图片区| 性疯狂做受xxxx高清视频| 国产精品国产三级国产专区53| 亚洲国产成人av好男人在线观看| 亚洲免费黄色片| 精品97人妻无码中文永久在线| 白天操夜夜操| 久久99久久99精品免费看小说| 国产91丝袜在线观看| 高清国产一区| 日本中文字幕成人| 亚洲精品久久嫩草网站秘色| 免费h视频在线观看| 中文字幕制服诱惑| 亚洲精品一二三四五区| 久久精品无码一区二区三区毛片| 成人国产精品免费观看动漫| 91国自产精品中文字幕亚洲| 亚洲av无码一区东京热久久| 一级黄色片在线看| 都市激情久久久久久久久久久| 波多野结衣一本一道| 国产视频在线一区| av 日韩 人妻 黑人 综合 无码| 日本一本草久p| 一本大道久久a久久综合婷婷| 国产极品在线播放| 久久免费播放视频| 欧美日韩一区在线观看| 91久久精品国产91久久性色| 亚洲美女一区二区三区| av免费网站观看| 91免费电影网站| 亚洲成av人片一区二区三区| 亚洲女同二女同志奶水| 天天操狠狠操夜夜操| 伊人影院综合在线| 久久久久久久久久久9不雅视频| 美国一区二区| 91福利视频网| 日本一线产区和二线产区| 欧美xxxx在线| 欧美一区二区福利视频| 亚洲美女少妇撒尿| 男人日女人下面视频| 日本不卡的三区四区五区| 国产精品白丝av| 自拍亚洲一区| 欧美一级大片在线免费观看| 日本免费一二三区| 一区二区三区四区日韩| 欧美毛片免费观看| 欧美激情一级二级| 亚洲四区在线观看| 中文字幕无码日韩专区免费| 日韩国产欧美精品在线| h网站在线看| 日本免费一区二区三区视频观看| 国产伦精品一区二区三区在线| 欧美三级视频在线播放| 欧美日韩视频精品一区二区| 91在线免费看| 国产很黄免费观看久久| 欧美电影免费观看网站| 欧美人成在线观看网站高清| 日韩激情在线观看| av网在线播放| 中文字幕日本乱码精品影院| 91亚洲午夜在线| 日本一区二区三区在线观看视频| 超薄肉色丝袜脚交一区二区| a视频在线播放| 国产小视频免费在线网址| 成人观看网站a| 亚洲片av在线| 高清一区二区三区四区| 青青青青草视频| 亚洲国产aⅴ天堂久久| 一区在线电影| 国产女人18毛片水18精品| 国产探花一区在线观看| 91嫩草国产线观看亚洲一区二区| 国产精品爽黄69天堂a| 国产成人综合精品| 国产精品久99| 日本精品一区二区三区视频| 国产一区二区三区在线看麻豆| 国产成人免费视频网站视频社区| www.亚洲在线| 亚洲五月婷婷| 欧美日韩第一区| 蜜桃传媒一区二区亚洲av| 成人免费视频a| 天堂av资源在线观看| 欧美韩国亚洲| 免费在线看电影| 亚洲国产精华液网站w| 国产乱码精品一区二区三区忘忧草| 欧美视频网站| 亚洲成人日韩| 国产精品久久毛片| 蜜桃91精品入口| 欧美96一区二区免费视频| 97看剧电视剧大全| 久久精品国产麻豆| 五月婷婷激情综合网| 美女尤物久久精品| 久久婷婷国产麻豆91天堂| 亚洲欧美综合视频| 欧美国产欧美亚州国产日韩mv天天看完整| 国产高清一区在线观看| 97人人爽人人喊人人模波多| 男人天堂亚洲二区| 久久这里有精品| 黄色成人在线| 麻豆电影传媒二区| 国产农村老头老太视频| 欧美大胆视频| 亚洲成人生活片| 欧美精美视频| 欧美激情国产精品日韩| 亚洲奶水xxxx哺乳期| 亚洲区一区二区三区| 久久露脸国产精品| 久久99精品波多结衣一区| 九色精品视频在线观看| 欧美大尺度做爰床戏| gogo高清在线播放免费| 天天干天天草天天| 97se狠狠狠综合亚洲狠狠| 国产日本在线观看| 国产激情久久久| 欧美另类z0zx974| 日韩 欧美一区二区三区| 亚洲一区 二区 三区| 一区二区三区自拍视频| 国产日产精品一区二区三区的介绍| 精品国产凹凸成av人导航| 国产亚洲精品久久| 欧美一级高清免费播放| 久久bbxx| 97精品国产综合久久久动漫日韩| 色8久久人人97超碰香蕉987| 国产色综合一区| 亚洲福利国产精品| 7777精品伊人久久久大香线蕉完整版| 国产精品国产三级国产普通话99| eeuss影院www免费影院| 懂色av蜜臀av粉嫩av永久| 精品美女久久久久| 久久精品中文字幕| 国产性猛交xxxx免费看久久| 九色porny丨国产精品| 99精品黄色片免费大全| 一区二区三区成人在线视频| 韩国三级电影久久久久久| 亚洲不卡视频在线观看| 在线观看免费高清视频| 91精品久久久久久久久久| 丰满少妇一区二区三区| 日韩中文欧美| 韩国无码av片在线观看网站| 77777影视视频在线观看| 欧美色爱综合| 欧美激情国产日韩精品一区18| 都市激情亚洲色图| 国产精品1区2区在线观看| 精品国产乱码91久久久久久网站| 亚洲自拍另类综合| 久久久久亚洲精品一区二区三区| 成年人影院在线观看| 黄色裸体一级片| 亚洲一区国产一区| 免费看一级大片| а√天堂资源地址在线下载| 免费观看国产精品视频| 国产精品av网站| 国产亚洲欧洲黄色| 91吃瓜网在线观看| 日韩激情视频在线| 妺妺窝人体色www聚色窝仙踪| 国产精品嫩草影院俄罗斯| 国产激情精品久久久第一区二区| 国产精品999久久久| 国产老妇另类xxxxx| 男人和女人做事情在线视频网站免费观看| 精品国产乱子伦一区二区| 精品制服美女久久| 日本一区二区三区精品| 日本成人超碰在线观看| 日韩新的三级电影| 97电影在线| 2019精品视频| 91小视频在线播放| 牛牛影视一区二区三区免费看| 日本电影一区二区三区| 奇米综合一区二区三区精品视频| 黄色免费视频观看| 香蕉视频免费在线看| 亚洲最大成人在线| 红桃视频一区二区三区免费| 国产嫩草在线观看| 中国av在线播放| 色呦呦在线资源| 夜夜亚洲天天久久| 91免费国产在线| 亚洲欧美国产日韩综合| 五月婷婷激情五月| 99精品在线视频观看| 精品国产区一区二| 你懂得在线观看| 一级做a爰片久久毛片| xxx亚洲日本| 麻豆视频传媒入口| 中文字幕第一区| 成人网免费看| 91爱爱小视频k| 免费黄网站观看| 日韩精品视频在线观看网址| 国产av无码专区亚洲av麻豆| 亚洲国产成人在线播放| 91蝌蚪九色| 成人性生交大合| 成人激情免费网站| 波多野结衣av无码| 亚洲欧美大片| 在线观看欧美日韩电影| 狠狠色狠色综合曰曰| 老司机精品视频在线观看6| 无遮挡的视频在线观看| 综合成人在线| 国产亚洲精品aa| 天堂在线中文网| 热99re久久精品这里都是免费| 欧美亚洲大陆| dj大片免费在线观看| 九九九九九九九九|