WebAPIの作り方、考え方です?。サンプルコードもありますよ。
2021.12.24
昨日から風邪を引いてしまいました…。今日も体調が優れない状態ですが、昨日よりはマシになっています、因みに風邪というよりも腸と胃に菌がはいってしまって、それによる発熱です?。
さて、今回はPHP言語でWebAPIの作りましたので、ご報告致します、どんなAPIかというと生年月日とカウントしたい歳をPOSTすると、現在の年齢、今まで生きてきた日数、カウント日数がレスポンス(返却)されます。
PHPコードは下記の通りになります。適当に作ったので間違っている箇所があるかもしれませんが、そこはご愛嬌でお願いできますでしょうか?、また、WebAPIの叩き方はご自身でお考えくださいませ。
サーバーに負荷が増したらWEBAPIは閉じます。
尚、WEBAPIのURLはこちらになります。
https://zip358.com/api/age/v1/type1/
<?php
header('Access-Control-Allow-Origin: *');
date_default_timezone_set('Asia/Tokyo');
$birth_date = (string)$_POST["birth_date"];
$max_age = (int)$_POST["point_age"];
/**
* @param string $birth_date
* @return string|false
*/
function check1($birth_date = ""): bool
{
$flg = false;
$str_date = explode("/", $birth_date);
if (count($str_date) === 3) {
$flg = true;
if (!((int)$str_date[0] >= 1000)) {
$flg = false;
}
if(((int)$str_date[0] > (int)date("Y"))){
$flg = false;
}
if (!((int)$str_date[1] >= 1 && (int)$str_date[1] <= 12)) {
$flg = false;
}
if ($flg) {
if ((int)$str_date[1] === 2) {
if (!((int)$str_date[2] >= 1 && (int)$str_date[2] <= 28)) {
$flg = false;
}
if ((int)$str_date[0] % 4 === 0) {
$flg = true;
if (!((int)$str_date[2] >= 1 && (int)$str_date[2] <= 29)) {
$flg = false;
}
if ((int)$str_date[0] % 100 === 0) {
$flg = true;
if (!((int)$str_date[2] >= 1 && (int)$str_date[2] <= 28)) {
$flg = false;
}
if ((int)$str_date[0] % 400 === 0) {
$flg = true;
if (!((int)$str_date[2] >= 1 && (int)$str_date[2] <= 29)) {
$flg = false;
}
}
}
}
} else {
$last_day = [4, 6, 9, 11];
if (array_search((int)$str_date[1], $last_day, false)!== false) {
if (!((int)$str_date[2] >= 1 && (int)$str_date[2] <= 30)) {
$flg = false;
}
} else {
if (!((int)$str_date[2] >= 1 && (int)$str_date[2] <= 31)) {
$flg = false;
}
}
}
}
}
return $flg;
}
/**
* @param int $age
* @return string|false
*/
function check2($age = 0): bool
{
$flg = true;
if ($age < 0) {
$flg = false;
}
return $flg;
}
/**
* @param string $birth_date
* @param string $maxage
* @return string $reslut
*/
function sumup($birth_date, $maxage)
{
$reslut = [];
$birth_date_array = explode("/", $birth_date);
$birth_date = sprintf("%04d%02d%02d", $birth_date_array[0], $birth_date_array[1], $birth_date_array[2]);
$today = date('Ymd');
$age = floor(($today - $birth_date) / 10000);
$day1 = new DateTime("{$birth_date_array[0]}-{$birth_date_array[1]}-{$birth_date_array[2]}");
$day2 = new DateTime();
$interval1 = $day1->diff($day2, true);
$baseday = (int)($interval1->format('%a'));
if ((int)$maxage <= (int)$age) {
$pointday = 0;
} else {
$maxage--;
$day3 = new DateTime((date('Y') + ($maxage - $age)) . "-{$birth_date_array[1]}-{$birth_date_array[2]}");
$interval2 = $day2->diff($day3, true);
$pointday = (int)($interval2->format('%a'))+1;
}
$reslut = [
[
"result" => "success",
"age"=>$age ."歳",
"baseday" => $baseday . "日(生きてきた日数)",
"pointday" => $pointday . "日(" .($maxage +1). "歳まであと)"
]
];
return json_encode($reslut);
}
if (!check1($birth_date)) {
print json_encode([
[
"result" => "error",
"error" => "string is invalid1"
]
]);
} elseif (!check2($max_age)) {
print json_encode([
[
"result" => "error",
"error" => "string is invalid2"
]
]);
} else {
print sumup($birth_date, $max_age);
}
タグ
39, Access-Control-Allow-Origin, API, header, lt, php, POST, url, WebApi, お願い, カウント, コード, こちら, ご報告, ご愛嬌, ご自身, サーバー, サンプル, そこ, それ, まし, レスポンス, 下記, 今回, 今日, 体調, 作り方, 叩き, 年齢, 日数, 昨日, 歳, 状態, 現在, 生年月日, 発熱, 箇所, 考え方, 胃, 腸, 菌, 言語, 負荷, 返却, 通り, 適当, 風邪,
務めている会社の事を語らないわけ。
2018.09.27
心配しても仕方がないから、会社は海賊船みたいなもので
船長がどう舵取りするかだと思います。
映画、パイレーツ・オブ・カリビアンではいろいろな海賊が出てきます。
ちなみに自分はジャック・スパロウの船には乗りたくないです、
アレは映画だからうまく行っているだけで、現実はうまくいかない。
余程の賢さと変人さを兼ね備えていれば
うまくいくかもしれませんが・・・。例えばチームラボの社長(猪子寿之)のような人は
まさにジャック・スパロウを地で行くひとなんだろうけど
そんな人はそんなにいない。
船長に一番必要なのはリーダーシップでもなく
どこまで先読みできるかだと自分は思います。
話変わって景気の話。
いま一番風邪を引いてほしくない国は中国だと、アメリカのトランプ氏を
批判しているけど、実際、行き過ぎたグローバル化は
貧富の差を大きくしている気もします。
https://www.youtube.com/watch?v=SGKM3nY6Z4w
今後の景気がどうなるかは中国なんでしょうけど・・・
欲望の経済史2018より
と
ぼーっとしている自分は下記の動画を見て感じました。
https://www.nhk-ondemand.jp/goods/G2017084373SA000/
https://www.nhk-ondemand.jp/goods/G2017084374SA000/
https://www.youtube.com/watch?v=9DJhggLIYaA
タグ
3, 4, 6, com, https, nbsp, NY, SGKM, watch, www, youtube, アメリカ, アレ, いま, いろいろ, オブ, カリビアン, グローバル, ジャック, スパロウ, チームラボ, どこ, トランプ, なん, パイレーツ, もの, リーダーシップ, わけ, 中国, 事, 人, 今後, 会社, 先読み, 国, 地, 変人, 実際, 差, 心配, 必要, 批判, 映画, 景気, 気, 海賊, 海賊船, 猪子寿之, 現実, 社長, 自分, 舵取り, 船, 船長, 話, 貧富, 風邪,