APIを扱うメソッド・関数の返り値について、
structの場合はポインタ渡し、
スライスの場合は値渡しとすることが一般的です。
スライスは配列に対するエイリアスですので、ポインタとする必要性がなく、
structの場合は、コピーが作成されてしまうので
ポインタとして返した方が、余計なオーバーヘッドが無くなります。
type APIClient struct {
key string
secret string
httpClient *http.Client
}
type ResponseSendChildOrder struct {
...
}
type Order struct {
...
}
func (api *APIClient) SendOrder(order *Order) (*ResponseSendChildOrder, error) {
...
return &response, nil // ポインタ
}
func (api *APIClient) ListOrder(query map[string]string) ([]Order, error) { // Order型のものを複数含んだスライスを返す
...
return responseListOrder, nil // 値
}