消費税の設定を保存するAPIサーバーです. REST APIのような設定になっています.
- SSLによるHTTPS化は行っていません.
こちらについては
- Apacheの
httpd.conf
等で(鍵暗号のファイルを指定して)直接設定する. - AWSのサービス(Route53等)を用いてHTTPSの設定をする. 等の方法で設定する事になるかと思います.
- Apacheの
- 開発環境の都合等でMYSQLとほぼ同等で互換性のあるMariaDBを利用しています. ただ, 基本的にこのアプリに関しては差は無いですのでどちらを利用しても問題ありません.
npm
(oryarn
)pm2
- Manager of js prosess- npm packages written in
package.json
mysql2
- mysql for javascriptexpress
- web server for javascriptbody-parser
- middleware to parse body and viewsdotenv
- environment file
- MYSQL Database
はじめにgitやscp等でファイルの配備をして下さい.
以下の手順でDBを用意して下さい.
- はじめにmysqlのUserを用意する.
create database innovation;
でinnovation
DBを作成.- userにdatabase作成の権限を与える.
cp ./.env.example ./.env
を実行し,.env
の中身を環境に合わせて変更する.mysql -u (userの名前) -p < ./lib/initialize.sql
を実行する.
Debian系, CentOS 等によりconfigの設定の仕方が違うので合わせて参照して下さい. どの環境でも proxy モジュールをインストールして下さい.
lib/innovation.conf.example
をsites-availableの任意のconfファイルにコピーして
サイト名等を編集, a2ensiteをして (ROOT URL)/api
に接続されるようにしてください.
httpd.conf
のLocationの部分にlib/innovation.conf.example
のLocationの部分をコピー
clone したディレクトリで以下のコマンドを実行して下さい. pm2 に関しては公式Doc等も参照して下さい.
$ npm install yarn pm2 -g
$ yarn global add pm2
$ yarn
$ pm2 start app.json
$ pm2 startup (環境名)
-> コマンドラインの出力に従って作業$ pm2 save
- サーバーのrestart
以上で
localhost:3000
に配備されるので,上記Apacheの設定が適切であれば(Apache のURL)/api
からリバースプロキシで接続されます.
動作を確認したい場合は,手元に落としてから project rootディレクトリ(このファイルのあるディレクトリ)で 以下のコマンドを実行して下さい.
- 上記
Initialize database
の手順を実行する. npm install
oryarn
を実行yarn(または npm) start
を実行 これによりlocalhost:3000
で動作を確認出来ます.
jsonでDBに保存されている全ての税率のデータを返します.
(root_URL)
-> [{id:1, start_date: "1998-01-17", rate:"0.03"},{id:2, start_date: "2011-11-03", rate:"0.08"}]
jsonでDBに保存されている税率のデータを返します. 今回はクライアント側では使用していません.
(root_URL)/1
-> [{id:1, start_date: "1998-01-17", rate:"0.03"}]
jsonで渡された税率のデータをDBに保存します. 空白や負の値,undefinedの時は例外を返します. 登録成功したら200番が返ります.
(root_URL)?start_date=2001-01-05&rate=0.08
指定された税率のデータをDBから削除します. 削除成功したら200番が返ります.
(root_URL)/1
- OS -> Raspbian GNU/Linux 9.8
- Apache Web server -> version 2.4.25
- MYSQL DB -> mysql Ver 15.1 Distrib 10.1.37-MariaDB
- node -> v11.10.1
- npm -> 6.7.0