Help us understand the problem. What is going on with this article?

【PHP】とりあえずAPIのスタブをパパっと作る

More than 1 year has passed since last update.

とりあえずAPIのスタブつくろう

APIとのやり取りを実装するのに仮のAPIをパパっと作って、ささっと自分の実装する箇所をある程度作ろう
というのが事の始まりです

スタブAPI

このPHPファイルを仮サーバーにおいてこいつと通信する。
例ではPOSTパラメータはnameを受け取って、その値に対して'_RECEIVED'を付加して、時間とともにjsonにして返す
てな感じの処理をしてます。
また、受け取ったlogも出力するようにしてます。

api.php
<?php
/* スタブAPIが受け付けるPOSTパラメーター:name */

// header('Access-Control-Allow-Origin: *'); // どこからでもアクセス許可するならワイルドカード
header('Access-Control-Allow-Origin: https://*******/post.php');
header('Access-Control-Allow-Credentials: true'); // Basic認証やCookieのやり取りする際は必要(ワイルドカード使用すると使えない)
header('Access-Control-Allow-Headers: Content-Type');
header('Content-Type: application/json; charset=utf-8');

date_default_timezone_set('Asia/Tokyo');

if(isset($_POST['name']) === false || $_POST['name'] === '') {
    $_POST['name'] = 'TEST_API';
}

$postName = htmlspecialchars($_POST['name'], ENT_QUOTES);

$array = [
    'name' => $postName . '_RECEIVED', // API側で受け取ったよというマーク的なやつを付加
    'date' => date("Y-m-d H:i:s"),
];

$json = json_encode($array);

/* logをAPI側のサーバーに出力する */
$file = new SplFileObject('log.txt', 'a');
$file->fwrite(
    "【→API】RequestParameter:" . $postName . "'\n【←API】ReturnParameter :" . $json . "\n----------\n"
);

echo $json;
exit;

単純にapi.phpにアクセスすると↓こんな感じで表示されるはず。
{"name":"TEST_API_RECEIVED","date":"2018-02-08 13:47:14"}

もし、呼び出し元でnameをPOSTすると
{"name":"YOBIDASHI_RECEIVED","date":"2018-02-08 13:48:45"}
みたいな感じでnameのとこが【POSTした値+_RECEIVED】に変わってるはず

おわり

  • headerの設定箇所が不安なので指摘あれば教えてくださいです
  • あとスタブって使い方あってます?

参考

sola-msr
ミセ*゚ー゚)リ そんな事言われてもウチ、ポン・デ・ライオンやし
andfactory
Smartphone Idea Companyとして、人々の生活に「&(アンド)」を届ける。
https://andfactory.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away