2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

APIについて噛み砕く

Last updated at Posted at 2020-06-30

近況報告

 実務経験を積みたい!

 これにつきます。ツイッターでテックの先輩のつぶやきをみても,独学と実務では圧倒的に差があることが伺えます。どのくらい差があるのかは日を追うごとに興味が増します。私の周りにwebエンジニアがいないため,現状を聞くとなるとやはり面接先のPM・CTOが多くなります。ただ,「実務って独学で得られる経験となにが違いますか」なんて質問落とされそうだから言えないよねw 私が考える限りでは,納品スピード,瞬時にメソッドなど使用するものを決める能力,ggr力なのかな。ただ,やはり現場で肩を並べて経験しないと実感はできないでしょう。

# 本日のお題  
「API」
 テックキャンプに参加していた時さっぱりわからずスルーしていた単語。ただ,就活をしていると多々現れる単語。「API」について噛み砕く

API

参考にしたサイト
APIの記事じゃないけどわかりやすい記事
API・・・ Application Programing Interface

 アプリケーションのプログラミングの表面。。。直訳しても意味が分からない略語である。アプリケーションをアプリケーション外から操作する窓口って感じで私は理解しました。

###具体例
 youtubeのAPIを用いて再生回数が1億回の動画をrubyで抽出し,出力しました。

 この場合「youtube」というアプリケーションの中の情報を,アプリケーション外から「ruby」を用いて抽出した,と考えられます。このように,外側からアクセスしてアプリケーションの情報を処理,抽出できるカラクリがAPIです。ここでのAPIは,youtubeの情報を得るためのAPIと考えられます。このようにAPIは目的によって動きが変わっていくものです。

データを抽出するAPI,アプリケーションを操作するAPI,同期するAPI,ソートを行うAPIなど

データとか情報 |壁←API←壁| 外側

 のような内側にアクセスするためのカラクリという認識で私は捉えています。つまりAPIがあれば誰でも中の情報が操れる訳で,流石にセキュリティの観点でそれはマズイので対策としてyoutubeのAPIはAPIキーが発行されそれを利用してアクセスできるようになります。

実用例(天気予報)

require 'net/http'
require 'uri'
require 'json'
require 'time'
require 'date'

uri = URI.parse('http://weather.livedoor.com/forecast/webservice/json/v1?city=170010')
json = Net::HTTP.get(uri)
result = JSON.parse(json)
today_tel = result['forecasts'][0]['telop']
tomor_tel = result['forecasts'][1]['telop']
min_tem = result['forecasts'][1]['temperature']['min']['celsius']
max_tem = result['forecasts'][1]['temperature']['max']['celsius']
des = result['description']['text']
des1 = result['description']['publicTime']
des2 = DateTime.parse(des1)

#puts result
puts ' 天気予報 '.center(60, '-')
puts ''
puts '今日の天気は、' + today_tel + ' でしょう '
puts '最低気温は、' + min_tem + '℃' + ' でしょう '
puts '最高気温は、' + max_tem + '℃' + ' でしょう '
puts '明日の天気は、' + tomor_tel + ' でしょう '
puts ''
puts ' 天気予報 '.center(60, '-')
puts ''
puts ''
puts ' 天気概況文 '.center(60, '-')
puts
puts des
puts ''
print ' 天気概況文の発表時刻  '
puts des2.strftime('%Y年%m月%d日 %H時%M分%S秒')
puts ''
puts ' 天気概況文 '.center(60, '-')

ここではhttp://weather.livedoor.com/forecast/webservice/json/v1?city=170010 にアクセスして気象情報を抽出して表示しています。

おわりに

 イメージが湧きましたでしょうか?もっといい表現があればおしえて!

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?