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);
}
著者名 @taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
39, Access-Control-Allow-Origin, API, header, lt, php, POST, url, WebApi, お願い, カウント, コード, こちら, ご報告, ご愛嬌, ご自身, サーバー, サンプル, そこ, それ, まし, レスポンス, 下記, 今回, 今日, 体調, 作り方, 叩き, 年齢, 日数, 昨日, 歳, 状態, 現在, 生年月日, 発熱, 箇所, 考え方, 胃, 腸, 菌, 言語, 負荷, 返却, 通り, 適当, 風邪,
あと7年から10年は続くだろうなと思う今日この頃。
2021.12.01
ペスト菌は5年ぐらいおさまったからコロナウィルスも5年ぐらいおさまると最初はそう信じていたのだけど、菌とウィルスは違うから、コロナウィルスに打ち勝つ方法を人類が見出すまでずっとこんな感じの状況が続くというのが答えではないだろうか。コロナを打ち勝つ方法を人類が見出すということは、他のウィルスにも打ち勝つ方法になるかもしれないと思っています。
ウィルスに打ち勝つために、人類は恐らく遺伝子を改造するようになるのではないかと。遺伝子を改造し人類2.0になるのだと思います、毎年のようにコロナワクチン接種は現実的ではないと思いますし、万能な特効薬でも見つかれば良いのだけど・・・なかなか難しいじゃないのかと思っています。
日本は他の国と違って未だにコロナ前に戻ると思っている人が多いと思いますが、コロナウイルスを根絶させない限りコロナ前に戻ることは無いと思います。数十年後にはコロナ前に戻るでしょうけど、それまではこんな社会が続くというのが現実的な予想だと思います。
一番、ハズレくじを引いている感覚が強いのは非正規雇用で働いている氷河期世代や無職、低所得の人々かなと思います。バブルが弾け、リーマンショック、そしてコロナ・・・。自分も氷河期世代なので、何とも言えない憤りを感じることがあります。
それでも悲観的にならず前を向いていきましょうという事ですね。いづれはコロナに打ち勝つ日が来ると思っていますが、残念ながら今ではないです。
最後に“ジャマおじ”“ジャマおば”を回避せよ?安宅和人さん語るのリンクを貼っときます。
https://www.nhk.jp/p/nw9/ts/V94JP16WGN/blog/bl/pKzjVzogRK/bp/prkDQebeb9/
著者名 @taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
10, 2.0, 5, 7, ウィルス, おさ, こと, コロナ, コロナウイルス, それまで, ため, ペスト菌, まる, ワクチン, 万能, 人, 人類, 今日この頃, 他, 国, 感じ, 接種, 改造, 数十, 方法, 日本, 最初, 未だ, 根絶, 毎年, 特効薬, 状況, 現, 社会, 答え, 菌, 遺伝子, 限り,