【Ruby】Discogs::Wrapper でアーティスト情報とかもろもろを取得する

discogsでアーティスト名、ジャンル、リリースされたトラックの情報を取得したい。
discogs APIのwrapperを利用して適宜ロジック等を記載していく。

##ドキュメント等

discogsについて
https://ja.wikipedia.org/wiki/Discogs

公式
https://www.discogs.com/ja/

gem
https://github.com/buntine/discogs

#アクセストークンの取得
wrapperを使う前にアクセストークンを取得する。

googleアカウントでdiscogsにサインアップ後、User Tokenを取得する。個人的に利用する分には当面はUserTokenで良さそう。

### 手順

1. https://www.discogs.com/developers/index.html#page:authentication にアクセス

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/339446/4584364a-7c44-825e-8a02-000615c21aa3.png)


2. Developer Settingsをクリックしてサインアップ

3. トークンを生成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/339446/ad3720e1-6007-bda0-9104-1fd2e550e13c.png)


#使ってみる

##アーティストIDを取得する

newの第一引数に自分のアプリ名(多分なんでもいい)、第二引数にユーザートークンを設定する
discogsからyaejiに関する情報を取得する。


次のメソッドを実行すると

```discogs_manager.rb
class Discogs_manager
  require 'discogs-wrapper'

auth_wrapper = Discogs::Wrapper.new(
        "アプリ名", user_token: "ユーザートークン"
        )
    search = auth_wrapper.search("yaeji", per_page: 10, type: :artist)
    puts search.results
end
end
```

次のように結果が返ってくる。

```結果
#<Hashie::Mash cover_image="https://img.discogs.com/HNsphNdpp5Xm_lboR0nCsXb3n1k=/600x819/smart/filters:strip_icc():format(jpeg):mode_rgb():quality(90)/discogs-images/A-5294873-1509655522-2592.jpeg.jpg" id=5294873 master_id=nil master_url=nil resource_url="https://api.discogs.com/artists/5294873" thumb="https://img.discogs.com/T5LLenQqOoje7_0qKFE6BqtyCqI=/150x150/smart/filters:strip_icc():format(jpeg):mode_rgb():quality(40)/discogs-images/A-5294873-1509655522-2592.jpeg.jpg" title="Yaeji" type="artist" uri="/artist/5294873-Yaeji" user_data=#<Hashie::Mash in_collection=false in_wantlist=false>>#<Hashie::Mash cover_image="https://img.discogs.com/6c7c7083538b032c3e9ef32acbd53fb23a88d9d0/images/spacer.gif" id=7473529 master_id=nil master_url=nil resource_url="https://api.discogs.com/artists/7473529" thumb="" title="Katherine Yaeji Lee" type="artist" uri="/artist/7473529-Katherine-Yaeji-Lee" user_data=#<Hashie::Mash in_collection=false in_wantlist=false>>
#<Hashie::Mash cover_image="https://img.discogs.com/jRu60yfLwNLfCc63iGO3mKDzkdg=/600x466/smart/filters:strip_icc():format(jpeg):mode_rgb():quality(90)/discogs-images/A-6557568-1556058811-9015.jpeg.jpg" id=6557568 master_id=nil master_url=nil resource_url="https://api.discogs.com/artists/6557568" thumb="https://img.discogs.com/jiW4R_Iq7HC2aUpyG75DoulPLgs=/150x150/smart/filters:strip_icc():format(jpeg):mode_rgb():quality(40)/discogs-images/A-6557568-1556058811-9015.jpeg.jpg" title="Korea Town Acid" type="artist" uri="/artist/6557568-Korea-Town-Acid" user_data=#<Hashie::Mash in_collection=false in_wantlist=false>>
```

これはdiscogsにyaejiに紐づくアーティスト情報が複数登録されているため、検索結果が二件取得されている。
検索結果の内、一件目を取得したい場合は次のようにする

```rb:
#省略
search = auth_wrapper.search("yaeji", per_page: 10, type: :artist) 
puts search.results.first
#省略
```
すると検索結果は次のように一件のみ返る

```結果
#<Hashie::Mash cover_image="https://img.discogs.com/HNsphNdpp5Xm_lboR0nCsXb3n1k=/600x819/smart/filters:strip_icc():format(jpeg):mode_rgb():quality(90)/discogs-images/A-5294873-1509655522-2592.jpeg.jpg" id=5294873 master_id=nil master_url=nil resource_url="https://api.discogs.com/artists/5294873" thumb="https://img.discogs.com/T5LLenQqOoje7_0qKFE6BqtyCqI=/150x150/smart/filters:strip_icc():format(jpeg):mode_rgb():quality(40)/discogs-images/A-5294873-1509655522-2592.jpeg.jpg" title="Yaeji" type="artist" uri="/artist/5294873-Yaeji" user_data=#<Hashie::Mash in_collection=false in_wantlist=false>>

```

アーティストIDのみを取得したい場合は次のようにする

```rb:
#省略
search = auth_wrapper.search("yaeji", per_page: 10, type: :artist) 
puts search.results.first.id
#省略
```
アーティストIDが返ってくる

```結果
5294873
```