5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

nekoサブドメインでにゃーんと返す実装をする

Last updated at Posted at 2020-03-18

何をしたいか

example.comのドメインを所有していた場合、neko.example.comに対するアクセスに"にゃーん"を応答する。
APIっぽく実装する。

今回使う僕のドメインは、taro-hida.tk

事前準備

  • DNSで、neko.taro-hida.tkのサブドメインにAレコードを設定する。conohaのDNSで設定。
$ dig neko.taro-hida.tk +short
150.95.153.122
  • Apacheサーバで、neko.taro-hida.tkのvirtualhostの設定を書く。
<VirtualHost *:80>
ServerName neko.taro-hida.tk 
DocumentRoot /var/www/neko/
CustomLog "logs/access_log" combined
ErrorLog "logs/error_log"
</VirtualHost>

APIの実装

  • Documentルートにindex.phpを設置する1

一応、index.phpについては権限をapacheに与えておく。

$ sudo chown apache:apache /var/www/neko/index.php
# cat /var/www/neko/index.php
<?php
header('Content-Type: application/json; charset=utf-8');
$neko = array('にゃーん');

print json_encode($neko, JSON_PRETTY_PRINT);

httpクエリを投げてjsonを取得

ブラウザでアクセスしても、json_encodeされたデータのため、UTF-8でencodeされたjsonがそのまま表示されてしまいます。
以下のpythonスクリプトでデータの取得を行います。

# cat get.py 
import requests
import json

url = 'http://neko.taro-hida.tk/'

response = requests.get(url)
contents = json.loads(response.text)

print(contents)
$ python3 get.py 
['にゃーん']

望んでいた結果が得られました。

おわりに

思い付きの実装でしたが、API実装したの初めてだったので勉強になったように思います。
割と30分くらいで実装もできました。

nekoサブドメインへのにゃーんAPI設置、流行らないかなぁ...

参考

  1. PHPで簡単なWebAPIを実装してみるのコードを拝借

5
1
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?