외부 API를 호출하여 BTC 가격 얻기
소개
Laravel에서 HTTP 요청을 던지기 위해 Guzzle
를 사용했습니다.
Guzzle의 공부로서 이번에는 BTC의 가격을 얻을 때까지 기사로하고 있습니다.
전제
이미 프로젝트가 만들어졌습니다.
※ 아직 작성되지 않은 분은 여기 을 참고로 하면 좋을까 생각합니다.
Guzzle 설치
composer require guzzlehttp/guzzle
제대로 설치되어 있으면 composer.json에 다음이 추가되었습니다.
"require": {
//略
"guzzlehttp/guzzle": "^7.2", //数値はインストールしたバージョンによって変わります
//略
}
외부 API 호출
이번에는 3개의 거래소 'bitflyer, Zaif, coincheck'에서 API를 호출하여 BTC의 가격을 취득하고 있습니다.
컨트롤러
BitcoinController.php<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use GuzzleHttp\Client;
class BitcoinController extends Controller
{
public function index()
{
$client = new Client();
$method = "GET";
$data = []; // 各取引所で取得したデータを格納する
# bitflyerで取得
$url = "https://api.bitflyer.jp/v1/ticker?product_code=BTC_JPY";
$response = $client->request("GET", $url);
$posts = $response->getBody();
$posts = json_decode($posts, true);
$data['bitflyer'] = $posts;
# Zaifで取得
$url = "https://api.zaif.jp/api/1/ticker/btc_jpy";
$response = $client->request("GET", $url);
$posts = $response->getBody();
$posts = json_decode($posts, true);
$data['Zaif'] = $posts;
# coincheckで取得
$url = "https://coincheck.com/api/ticker";
$response = $client->request("GET", $url);
$posts = $response->getBody();
$posts = json_decode($posts, true);
$data['coincheck'] = $posts;
return view('bitcoin.index', compact('data'));
}
}
소스 코드를 간략하게 설명합니다.
우선, API에 대해서 GET 메소드로 HTTP 통신을 선언.
$client = new Client();
$response = $client->request("GET", [アクセスしたいURL]);
다음으로, API의 반환값에 대해서, getBody() 메소드를 사용해 메세지의 본문을 취득합니다. 또한 API로 얻은 데이터는 JSON 형식이므로 json_decode() 함수를 이용하여 JSON 문자열을 배열로 변환합니다.
$posts = $response->getBody();
$posts = json_decode($posts, true);
API의 반환값을 포함한 $data
의 내용은 아래와 같습니다.
route
web.php<?php
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('/', 'BitcoinController@index');
보기
index.blade.php<div class="container">
<table border="1">
<tbody>
<tr>
<th>bitflyer</th>
<th>Zaif</th>
<th>coincheck</th>
</tr>
<tr>
<td>¥{{ number_format($data['bitflyer']['ltp']) }}円</td>
<td>¥{{ number_format($data['Zaif']['last']) }}円</td>
<td>¥{{ number_format($data['coincheck']['last']) }}円</td>
</tr>
</tbody>
</table>
</div>
화면 표시되는 것은 아래와 같습니다.
참고
Laravel & Guzzle] API 호출 방법을 알기 쉽게 해설
비트 코인 가격을 API로 얻어 보았습니다.
Reference
이 문제에 관하여(외부 API를 호출하여 BTC 가격 얻기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/tamakiiii/items/d06e2ea0d5b47b38804a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
이미 프로젝트가 만들어졌습니다.
※ 아직 작성되지 않은 분은 여기 을 참고로 하면 좋을까 생각합니다.
Guzzle 설치
composer require guzzlehttp/guzzle
제대로 설치되어 있으면 composer.json에 다음이 추가되었습니다.
"require": {
//略
"guzzlehttp/guzzle": "^7.2", //数値はインストールしたバージョンによって変わります
//略
}
외부 API 호출
이번에는 3개의 거래소 'bitflyer, Zaif, coincheck'에서 API를 호출하여 BTC의 가격을 취득하고 있습니다.
컨트롤러
BitcoinController.php<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use GuzzleHttp\Client;
class BitcoinController extends Controller
{
public function index()
{
$client = new Client();
$method = "GET";
$data = []; // 各取引所で取得したデータを格納する
# bitflyerで取得
$url = "https://api.bitflyer.jp/v1/ticker?product_code=BTC_JPY";
$response = $client->request("GET", $url);
$posts = $response->getBody();
$posts = json_decode($posts, true);
$data['bitflyer'] = $posts;
# Zaifで取得
$url = "https://api.zaif.jp/api/1/ticker/btc_jpy";
$response = $client->request("GET", $url);
$posts = $response->getBody();
$posts = json_decode($posts, true);
$data['Zaif'] = $posts;
# coincheckで取得
$url = "https://coincheck.com/api/ticker";
$response = $client->request("GET", $url);
$posts = $response->getBody();
$posts = json_decode($posts, true);
$data['coincheck'] = $posts;
return view('bitcoin.index', compact('data'));
}
}
소스 코드를 간략하게 설명합니다.
우선, API에 대해서 GET 메소드로 HTTP 통신을 선언.
$client = new Client();
$response = $client->request("GET", [アクセスしたいURL]);
다음으로, API의 반환값에 대해서, getBody() 메소드를 사용해 메세지의 본문을 취득합니다. 또한 API로 얻은 데이터는 JSON 형식이므로 json_decode() 함수를 이용하여 JSON 문자열을 배열로 변환합니다.
$posts = $response->getBody();
$posts = json_decode($posts, true);
API의 반환값을 포함한 $data
의 내용은 아래와 같습니다.
route
web.php<?php
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('/', 'BitcoinController@index');
보기
index.blade.php<div class="container">
<table border="1">
<tbody>
<tr>
<th>bitflyer</th>
<th>Zaif</th>
<th>coincheck</th>
</tr>
<tr>
<td>¥{{ number_format($data['bitflyer']['ltp']) }}円</td>
<td>¥{{ number_format($data['Zaif']['last']) }}円</td>
<td>¥{{ number_format($data['coincheck']['last']) }}円</td>
</tr>
</tbody>
</table>
</div>
화면 표시되는 것은 아래와 같습니다.
참고
Laravel & Guzzle] API 호출 방법을 알기 쉽게 해설
비트 코인 가격을 API로 얻어 보았습니다.
Reference
이 문제에 관하여(외부 API를 호출하여 BTC 가격 얻기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/tamakiiii/items/d06e2ea0d5b47b38804a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
composer require guzzlehttp/guzzle
"require": {
//略
"guzzlehttp/guzzle": "^7.2", //数値はインストールしたバージョンによって変わります
//略
}
이번에는 3개의 거래소 'bitflyer, Zaif, coincheck'에서 API를 호출하여 BTC의 가격을 취득하고 있습니다.
컨트롤러
BitcoinController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use GuzzleHttp\Client;
class BitcoinController extends Controller
{
public function index()
{
$client = new Client();
$method = "GET";
$data = []; // 各取引所で取得したデータを格納する
# bitflyerで取得
$url = "https://api.bitflyer.jp/v1/ticker?product_code=BTC_JPY";
$response = $client->request("GET", $url);
$posts = $response->getBody();
$posts = json_decode($posts, true);
$data['bitflyer'] = $posts;
# Zaifで取得
$url = "https://api.zaif.jp/api/1/ticker/btc_jpy";
$response = $client->request("GET", $url);
$posts = $response->getBody();
$posts = json_decode($posts, true);
$data['Zaif'] = $posts;
# coincheckで取得
$url = "https://coincheck.com/api/ticker";
$response = $client->request("GET", $url);
$posts = $response->getBody();
$posts = json_decode($posts, true);
$data['coincheck'] = $posts;
return view('bitcoin.index', compact('data'));
}
}
소스 코드를 간략하게 설명합니다.
우선, API에 대해서 GET 메소드로 HTTP 통신을 선언.
$client = new Client();
$response = $client->request("GET", [アクセスしたいURL]);
다음으로, API의 반환값에 대해서, getBody() 메소드를 사용해 메세지의 본문을 취득합니다. 또한 API로 얻은 데이터는 JSON 형식이므로 json_decode() 함수를 이용하여 JSON 문자열을 배열로 변환합니다.
$posts = $response->getBody();
$posts = json_decode($posts, true);
API의 반환값을 포함한
$data
의 내용은 아래와 같습니다.route
web.php
<?php
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('/', 'BitcoinController@index');
보기
index.blade.php
<div class="container">
<table border="1">
<tbody>
<tr>
<th>bitflyer</th>
<th>Zaif</th>
<th>coincheck</th>
</tr>
<tr>
<td>¥{{ number_format($data['bitflyer']['ltp']) }}円</td>
<td>¥{{ number_format($data['Zaif']['last']) }}円</td>
<td>¥{{ number_format($data['coincheck']['last']) }}円</td>
</tr>
</tbody>
</table>
</div>
화면 표시되는 것은 아래와 같습니다.
참고
Laravel & Guzzle] API 호출 방법을 알기 쉽게 해설
비트 코인 가격을 API로 얻어 보았습니다.
Reference
이 문제에 관하여(외부 API를 호출하여 BTC 가격 얻기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/tamakiiii/items/d06e2ea0d5b47b38804a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(외부 API를 호출하여 BTC 가격 얻기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tamakiiii/items/d06e2ea0d5b47b38804a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)