標準化と保護。
変更点
サーバーサイド
- データベースにパスワードプロテクション機能を追加
`main.py`があるフォルダ内に`password`というファイルを作ってください。中にパスワードを書くと、それがデータベースのパスワードになります。
なお、改行などもそのまま反映されるため、クライアント側は行末の`\n`などに気を付けてください。
- いくつかのエンドポイントのメソッド変更
エンドポイント|変更前|変更後
-----|-----|-----
`get`|`GET`|`POST`
`get_all`|`GET`|`POST`
`exists`|`GET`|`POST`
`reload`|`GET`|`POST`
`delete`|`DELETE`|`POST`
`delete_all`|`DELETE`|`POST`
これらの変更は、パスワード保護による変更です。
- 一部のエンドポイントのリクエスト方法の変更
要約すると、`http://localhost/<ENDPOINT>/<KEY>`といったエンドポイントの場合は、URLは`http://localhost/<ENDPOINT>`になり、リクエストボディーのJSONに`{key: "<KEY>"}`をつけるというような形になりました。
- 拡張機能`IntKey`の削除
上のエンドポイントのリクエスト方法の変更によって、キーがint型でもやり取りできるようになりました。
そのため、`IntKey`は使われなくなりました。
サポートは行わず、機能も削除します。
クライアントラッパー
- `HTTP_db.Client`の引数を変更
削除: `intkey`
追加: `password`
これにより、パスワード保護が使用できます。
なお、パスワードには改行なども使用されるため、パスワードファイルによるパスワード指定をお勧めします。
py
client = HTTP_db.Client(url="127.0.0.1", port=8080, password=open("password", "r").read())
- 例外の追加
`DatabaseAuthenticationError`が追加されました。
これは、データベースのパスワードが違う又は、パスワード保護されているのにパスワードが指定されていなかった場合に発生します。
パスワードが不正かどうかは、保護されている各エンドポイントに接続した際に分かるため、各種関数を実行した際にエラーが発生します。