概要

swaggerで作ったコードを読んだり実行したりして下準備。


ローカルのimport(非推奨)でswagger生成のクライアントを使いたい。。どうするのか。

importの仕方を調べる

【Go】import 書き方まとめ – Qiita
http://qiita.com/taji-taji/items/5a4f17bcf5b819954cc1

Goでpackageのimportのやり方(自分用に整理) – Qiita
http://qiita.com/shiwork/items/a213b1af2da7f7f8ea22

ビルドもできないし考え方が違うのね
でもとりあえずローカルインポートで動かしたい

goのimportを自動的に追加/削除してくれる「goimports」を試してみた – Misc Notes

自動でインポート


チュートリアル読めばいいけど、、

チートシートをメモ

golang チートシート – Qiita
http://qiita.com/jca02266/items/56a4fb7b07b692a6bf34

バッドノウハウ系

魅力もあるが注意も実は多そう。。
クラスがかけないという話を聞いたけど、まだ実感として理解するにいたってない。

Goのアンチパターン – GolangRdyJp
http://golang.rdy.jp/2016/07/26/antiptn/

Go言語(Golang) はまりどころと解決策
http://www.yunabe.jp/docs/golang_pitfall.html


jsonと構造体

Unmarshalってなに?

Goのjson.Marshal/Unmarshalの仕様を整理してみる · I Will Survive
http://blog.restartr.com/2014/08/13/golang-json-marshal-unmarshal/


関数をとりあえず使う

複数の戻り値の受け方を調べる

golangの関数をまとめてみた。 – Qiita
http://qiita.com/Jumpei_Chikamo/items/dd8acfba3dfe32530717

複数の戻り値を簡単に指定できる


swagger-codegenの古いバージョンだとclientのコードが変だった

エラーの受け取り方について

省略形式での変数再宣言が許される場合 – Qiita
http://qiita.com/Jxck_/items/2616abafea89ee97c477

すでに err のような取回す変数が宣言されていて、それ以外の値も含めた多値を返す関数を呼ぶとき。


swagger-codegenの古いバージョンだとclientのコードが変だった

swaggerをdockerでインストールし直す

swagger-api/swagger-codegen: swagger-codegen contains a template-driven engine to generate documentation, API clients and server stubs in different languages by parsing your OpenAPI / Swagger definition.
https://github.com/swagger-api/swagger-codegen


swagger-codegenでのコードで使われていたパッケージ

swagger-codegenのgo-clientのコード

よくわからないけど、restfulに近づけたってことかしら。

    以前のバージョンで使われていたパッケージ

github.com/dghubble/sling

Sling is a Go HTTP client library for creating and sending API requests.

    現行のバージョンで使われていたパッケージ

github.com/go-resty/resty

Simple HTTP and REST client for Go inspired by Ruby rest-client. Features section describes in detail about resty capabilities.


swagger-codegenでのコードの実行の仕方が説明されていないので調べつつ実行した

swagger-codegenでのコードの実行の仕方が説明されていないので調べつつ実行した

main.goを作って実行。
接続先は…WithBasePath()で上書きできる。
(AWSにしていたので、ローカルで同じくcodegenしたサーバーにすげ替える。prodなどに注意。)

package main

import (
    "./go-client"
    "fmt"
)

func main() {
    //UserApi
    UserApi := swagger.NewUserApiWithBasePath("http://localhost:8080/prod")
    user_pre, user_res, user_err := UserApi.PostUser("title", "contents")
    //print(user_pre, user_res, user_err)
    fmt.Printf("%s\n", UserApi.Configuration)
    fmt.Printf("%s\n", user_pre)
    fmt.Printf("%s\n", user_res)
    fmt.Printf("%s\n", user_err)
}
bannerAds