PythonのFlaskでAPI開発するときの参考記事まとめ

## 概要

PythonのFlaskを用いた開発する際によく参考にしている記事をまとめています。

自分用なので、自分記事が若干多めです。随時更新

この記事良かったよーとか、教えていただけると助かります。


## 環境構築

Python+Flask環境をDockerで構築する
https://qiita.com/kai_kou/items/e78b546b9820c7d8f1f9

DockerコンテナでFlaskを起動し, JSONデータのPOSTとGET
https://qiita.com/paperlefthand/items/82ab6df4a348f6070a55

PythonのFlaskでMySQLを利用したRESTfulなAPIをDocker環境で実装する
https://qiita.com/kai_kou/items/5d73de21818d1d582f00


## ライブラリ

Flask
http://flask.pocoo.org/

[Python] 軽量WebフレームワークのFlaskに入門（準備、起動、HTML、静的ファイル、GET、POSTなど）
https://www.yoheim.net/blog.php?q=20160505


## RESTful

Flask で Restful API を作る - jsonify で日本語が文字化けする時の解決方法
http://datalove.hatenadiary.jp/entry/flask-jsonify-how-to-encode-japanese

Flask-RESTful
https://flask-restful.readthedocs.io/en/latest/

Flask-RESTful - KZKY memo
http://kzky.hatenablog.com/entry/2015/11/02/Flask-Restful

Flask-RESTfulとFlask-SQLAlchemyを利用してリソースをネストしてJSONを返す方法
https://qiita.com/kai_kou/items/9dea3a08c1577a6dd952

## 設計・モック

API BlueprintとdrakovとdreddでAPIドキュメントを書きつつモックサーバを立ててさらにテストを走らせる
https://arata.hatenadiary.com/entry/2018/03/22/204723

api blueprintとaglioを利用してAPI仕様書を作成する
https://qiita.com/kai_kou/items/630f6c1e4e577518bd14

api blueprintとdrakovを利用してAPIモックサーバを立ち上げる
https://qiita.com/kai_kou/items/bdbb6c3f8d1ac655595d

Dockerとapi blueprint+aglio+drakovを使ってAPI開発を楽にする
https://qiita.com/kai_kou/items/feca8974f3967a285ff4

api blueprint関連記事まとめ
https://qiita.com/kai_kou/items/45c6f109b294fa00d310


## DB・ORM

SQLAlchemyをMySQLで主キーをUUIDにするならSQLAlchemy-Utilsが便利
https://qiita.com/kai_kou/items/70d73af54c2550051607

SQLAlchemy-Utils
https://sqlalchemy-utils.readthedocs.io/en/latest/index.html

SQLAlchemy - The Database Toolkit for Python
https://www.sqlalchemy.org/

Python3 の 定番ORM 「 SQLAlchemy 」で MySQL ・ SQLite 等を操作 – 導入からサンプルコード
https://it-engineer-lab.com/archives/1183

Flask-SQLAlchemy
http://flask-sqlalchemy.pocoo.org/2.1/

Flask-SQLAlchemyの使い方
https://qiita.com/msrks/items/673c083ca91f000d3ed1

Flask-Migrate documentation
https://flask-migrate.readthedocs.io/en/latest/

Flask + SQLAlchemyプロジェクトを始める手順
https://qiita.com/shirakiya/items/0114d51e9c189658002e

Flask-Marshmallow
https://flask-marshmallow.readthedocs.io/en/latest/

SQLAlchemy x marshmallowでModelからJSONへの変換を楽に行う
https://techblog.recochoku.jp/3107

PyMySQL
https://github.com/PyMySQL/PyMySQL

SQLAlchemyでのupdate
http://motomizuki.github.io/blog/2015/05/20/sqlalchemy_update_20150520/


## 単体テスト

PythonのFlaskでMySQLを利用したRESTfulなAPIにpytestで単体テストを追加する
https://qiita.com/kai_kou/items/5d807136a741d8e75ad9

Flask-Testing Flask-Testing 0.3 documentation
https://flask-testing.readthedocs.io/en/latest/

Microservices with Docker, Flask, and React - Test Setup
https://testdriven.io/part-one-test-setup

Pythonのpytest-watchモジュールでテスト駆動開発が捗った
https://qiita.com/kai_kou/items/2a494289f6b28da3361a


## デプロイ・GCP

PythonのFlaskアプリをGoogle App Engineにデプロイしてみた
https://qiita.com/kai_kou/items/775bcc058aaabbdff4e7

Google App Engine上のFlaskでレスポンスをNo Content(204)で返す方法を調べた
https://qiita.com/kai_kou/items/801ae9715b5b8f4736b8

Google App Engine上でFlaskを利用してNo Content(204)を返すとき、 ```Content-Length``` が0じゃないとエラーになる
https://qiita.com/kai_kou/items/a4204189b1b9d4b74dc9

Google Cloud FunctionsのPython(Beta)でHttpトリガーのときJSONを返す
https://qiita.com/kai_kou/items/622265c32aecfa2e7cc3