Ajaxでapiを表示する
動的なページで自作したapiを静的なフロントのページで表示させる必要があったので備忘録として残します。
laravelでapiの作り方
動的なページ側での話。
Http/Controllers/APIにapi用のコントローラーを作成。
今回はFAQのAPIを作る。
FAQAPIController
class APIFAQController extends Controller
{
public function index(Request $request){
$faq = Faq::all();
header("Access-Control-Allow-Origin: *");
return Response::json($faq);
}
}
routeのapi.phpにapi用のルートを設定する
//FAQ API
Route::get('/index','API\APIFAQController@index')->name('api.index');
これでURLに api/index
にアクセスするとjsonでレスポンスが返ってくる
postmanで確認するとapiの中身が確認できる。
apiの受け取った通信データの表示方法
ここから静的ページサイトでどうやって表示させるかという話。
$.get
メソッドを使って通信データを取得できる
$.get('apiのurl',function(data))
functionの中のdataが引数で通信データを受け取ることができる。
index.html
$.get('apiurl',function(data){
//処理を書く
})
あとは処理を書いていけばよい
index.html
<script>
$(function(){
$.get('https://faq.com/api/index', function(data){
for(var i=0; i<data.length; i++){
var question = data[i].question;
var answer = data[i].answer;
console.log(question);
console.log(answer);
}
</script>
こんな感じです。