aiko의 곡명을 2개 늘어놓으면, 한층 더 맛 깊은 타이틀이 되는 것은 아닐까? (IBM Cloud의 Cloudant에 데이터 저장 및 읽기)

발단



aiko씨의 곡명은, 딱정벌레라든지 안드로메다라든지 눈을 끄는 타이틀이 많기 때문에, 2개 늘어놓으면 보다 매력적이 되는 것은 아닐까?

Cloudant



IBM Cloud가 제공하는 NoSQL 데이터베이스로 CouchDB 등과 호환성이 있다.
무료 Lite 플랜으로 1GB까지 저장할 수 있기 때문에 텍스트 데이터 등을 저장하는 용도라면 지나치게 많다.
30일 아무것도 하지 않으면 사라지는 것 같습니다.



IBM Cloud 대시보드에서 Cloudant 서비스를 작성하고 Cloudant 페이지로 이동합니다.
그리고 DB를 작성.
이번에는 가수 aiko의 곡명을 저장하기로 했기 때문에 aiko_songs라는 DB를 만들었다.



샘플 데이터



여기 같은 곡명을 열거한 csv를 준비한다.

csv 파일에는 헤더가 없습니다.


번호
노래 이름


1
내일

2
나키 무시

3
불꽃





프로그램



이번에는 루비로 쓴.

aiko.rb
# cloudantの設定
cloudant_url =  "cloudant_address"
uri = URI.parse(cloudant_url)
https = Net::HTTP.new(uri.host, uri.port)
https.use_ssl = true
coudant_url는 cloudant URL을 지정합니다.https://xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-bluemix.cloudant.com/aiko_songs/이런 형식으로 끝에 DB명을 추가한다.

aiko.rb
req = Net::HTTP::Post.new(uri.request_uri)
req['Content-Type'] = "application/json"

# CSVの1行ごとに登録
csv_data.each do |data|
  payload = {
    "_id" => data[0],
    "song_name" =>  data[1]
  }.to_json
  req.body = payload
  res = https.request(req)

json을 만들고, 당신이 post하면 등록할 수 있다.

다만, 먼저 Cloudant측에서 Permission을 설정하지 않으면 안 된다.
상기 URL은 UUID라고 하는 일도 있어, 유석에 추측할 수 없기 때문에, 테스트 용도라면 모두 ON으로 해도 큰 문제는 되지 않는다고 생각한다.
(테스트 종료 후 제대로 OFF로 하는 것)



ruby 파일을 실행하면 Cloudant에 등록된다.



이것을 IBM Cloud의 Node-RED에서 호출 한 것이 여기

JavaScript에서 호출할 때는 jQuery를 사용한다면 다음과 같은 느낌으로 선택기를 써서 취득한다.
아래의 예는 단순히 무작위로 얻는 것입니다.
$.post("/getAikoSong", 
  { "selector":  
    {"_id": 
      {"$eq": randomNum } // 乱数のIDの曲名を取ってくる。
    }
  }, function(data) {
    // 取得した曲名を表示
    mesDiv.innerHTML = data["docs"][0]["song_name"]
});

동작 샘플



여기



aiko 씨가 나쁘지 않았고 내가 나빴다.
완료되지 않았습니다.

리포지토리



github

좋은 웹페이지 즐겨찾기