GoのWebAssemblyでネットワークを利用する
Go1.11からサポートされたWebAssemblyにおいて、ネットワークを利用する方法を紹介します。今回はJSONファイルの取得方法です。
注意点
実際のネットワークアクセスはWebブラウザの開発者ツール、ネットワークタブ内で確認できます。ネットワークアクセスを匿名化したり、CORS制限も適用されますので注意してください。
利用法
今回はCORS制限がなく、APIキーも不要なMicrolinkのコンテンツを取得します。 "net/http"
パッケージを使ってネットワークアクセスをします。そして ioutil.ReadAll
を使ってコンテンツを取得します。これはバイト文字列になっていますので、 string
関数を使って文字列化します。
package main | |
import ( | |
"fmt" | |
"syscall/js" | |
"net/http" | |
"strconv" | |
"io/ioutil" | |
) | |
func main() { | |
resp, err := http.Get("https://api.microlink.io/?url=https://twitter.com/futurism/status/882987478541533189&video&palette") | |
if err != nil { | |
fmt.Println(err) | |
} | |
defer resp.Body.Close() | |
b, err := ioutil.ReadAll(resp.Body) | |
if err != nil { | |
fmt.Println(err) | |
} | |
js.Global().Get("document"). | |
Call("querySelector", "#html"). | |
Set("value", string(b)) | |
} |
これまでのWebAssemblyはDOMやFetch APIなどが使えないのが難点でした。しかしGo版のWebAssemblyによって、その問題はなくなっています。 WebAssemblyの可能性を飛躍的に高めてくれるのではないでしょうか。
コメントは受け付けていません。