From 6685c676094c39ca4f0494afb568d5b5dc165556 Mon Sep 17 00:00:00 2001 From: Sam Kleiner Date: Sun, 11 Aug 2019 16:23:05 -0400 Subject: [PATCH] add example project --- README.md | 2 +- example/Pipfile | 14 +++++++ example/Pipfile.lock | 74 ++++++++++++++++++++++++++++++++++ example/README.md | 0 example/look/__init__.py | 0 example/look/api/__init__.py | 0 example/look/api/controller.py | 6 +++ example/look/app.py | 11 +++++ example/look/model/__init__.py | 0 example/look/model/model.py | 5 +++ example/openapi-spec.yaml | 11 +++++ 11 files changed, 122 insertions(+), 1 deletion(-) create mode 100644 example/Pipfile create mode 100644 example/Pipfile.lock create mode 100644 example/README.md create mode 100644 example/look/__init__.py create mode 100644 example/look/api/__init__.py create mode 100644 example/look/api/controller.py create mode 100644 example/look/app.py create mode 100644 example/look/model/__init__.py create mode 100644 example/look/model/model.py create mode 100644 example/openapi-spec.yaml diff --git a/README.md b/README.md index cad6ab0..18eb955 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ Reads an openapi spec and provides automatic routing to Falcon resources. This i This router inherits from the default Falcon CompiledRouter class, so it supports all methods available to the default router. -Supports json files, yaml files, raw json strings, and raw yaml strings. If no params are specified the plugin will attempt to find `openapi-spec.yml` or `openapi-spec.yaml` in the same directory. +Supports json files, yaml files, raw json strings, and raw yaml strings. If no params are specified the plugin will attempt to find `openapi-spec.yml` or `openapi-spec.yaml` in the current working directory (see example for structure). ```python import falcon diff --git a/example/Pipfile b/example/Pipfile new file mode 100644 index 0000000..09d66a1 --- /dev/null +++ b/example/Pipfile @@ -0,0 +1,14 @@ +[[source]] +name = "pypi" +url = "https://pypi.org/simple" +verify_ssl = true + +[dev-packages] + +[packages] +falcon = "*" +gunicorn = "*" +falcon-openapi = "*" + +[requires] +python_version = "3.7" diff --git a/example/Pipfile.lock b/example/Pipfile.lock new file mode 100644 index 0000000..c9e39c8 --- /dev/null +++ b/example/Pipfile.lock @@ -0,0 +1,74 @@ +{ + "_meta": { + "hash": { + "sha256": "9fa664e69c01d141d49abb02288110012c41709fc7e147be5259d41467d04e4b" + }, + "pipfile-spec": 6, + "requires": { + "python_version": "3.7" + }, + "sources": [ + { + "name": "pypi", + "url": "https://pypi.org/simple", + "verify_ssl": true + } + ] + }, + "default": { + "falcon": { + "hashes": [ + "sha256:18157af2a4fc3feedf2b5dcc6196f448639acf01c68bc33d4d5a04c3ef87f494", + "sha256:24adcd2b29a8ffa9d552dc79638cd21736a3fb04eda7d102c6cebafdaadb88ad", + "sha256:54f2cb4b687035b2a03206dbfc538055cc48b59a953187b0458aa1b574d47b53", + "sha256:59d1e8c993b9a37ea06df9d72cf907a46cc8063b30717cdac2f34d1658b6f936", + "sha256:733033ec80c896e30a43ab3e776856096836787197a44eb21022320a61311983", + "sha256:74cf1d18207381c665b9e6292d65100ce146d958707793174b03869dc6e614f4", + "sha256:95bf6ce986c1119aef12c9b348f4dee9c6dcc58391bdd0bc2b0bf353c2b15986", + "sha256:9712975adcf8c6e12876239085ad757b8fdeba223d46d23daef82b47658f83a9", + "sha256:a5ebb22a04c9cc65081938ee7651b4e3b4d2a28522ea8ec04c7bdd2b3e9e8cd8", + "sha256:aa184895d1ad4573fbfaaf803563d02f019ebdf4790e41cc568a330607eae439", + "sha256:e3782b7b92fefd46a6ad1fd8fe63fe6c6f1b7740a95ca56957f48d1aee34b357", + "sha256:e9efa0791b5d9f9dd9689015ea6bce0a27fcd5ecbcd30e6d940bffa4f7f03389", + "sha256:eea593cf466b9c126ce667f6d30503624ef24459f118c75594a69353b6c3d5fc", + "sha256:f93351459f110b4c1ee28556aef9a791832df6f910bea7b3f616109d534df06b" + ], + "index": "pypi", + "version": "==2.0.0" + }, + "falcon-openapi": { + "hashes": [ + "sha256:4b0ee07c6e9685a32020ff2cac8ff2daaf67e6a974722007bbce7ff058e41c48" + ], + "index": "pypi", + "version": "==0.5.0" + }, + "gunicorn": { + "hashes": [ + "sha256:aa8e0b40b4157b36a5df5e599f45c9c76d6af43845ba3b3b0efe2c70473c2471", + "sha256:fa2662097c66f920f53f70621c6c58ca4a3c4d3434205e608e121b5b3b71f4f3" + ], + "index": "pypi", + "version": "==19.9.0" + }, + "pyyaml": { + "hashes": [ + "sha256:0113bc0ec2ad727182326b61326afa3d1d8280ae1122493553fd6f4397f33df9", + "sha256:01adf0b6c6f61bd11af6e10ca52b7d4057dd0be0343eb9283c878cf3af56aee4", + "sha256:5124373960b0b3f4aa7df1707e63e9f109b5263eca5976c66e08b1c552d4eaf8", + "sha256:5ca4f10adbddae56d824b2c09668e91219bb178a1eee1faa56af6f99f11bf696", + "sha256:7907be34ffa3c5a32b60b95f4d95ea25361c951383a894fec31be7252b2b6f34", + "sha256:7ec9b2a4ed5cad025c2278a1e6a19c011c80a3caaac804fd2d329e9cc2c287c9", + "sha256:87ae4c829bb25b9fe99cf71fbb2140c448f534e24c998cc60f39ae4f94396a73", + "sha256:9de9919becc9cc2ff03637872a440195ac4241c80536632fffeb6a1e25a74299", + "sha256:a5a85b10e450c66b49f98846937e8cfca1db3127a9d5d1e31ca45c3d0bef4c5b", + "sha256:b0997827b4f6a7c286c01c5f60384d218dca4ed7d9efa945c3e1aa623d5709ae", + "sha256:b631ef96d3222e62861443cc89d6563ba3eeb816eeb96b2629345ab795e53681", + "sha256:bf47c0607522fdbca6c9e817a6e81b08491de50f3766a7a0e6a5be7905961b41", + "sha256:f81025eddd0327c7d4cfe9b62cf33190e1e736cc6e97502b3ec425f574b3e7a8" + ], + "version": "==5.1.2" + } + }, + "develop": {} +} diff --git a/example/README.md b/example/README.md new file mode 100644 index 0000000..e69de29 diff --git a/example/look/__init__.py b/example/look/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/example/look/api/__init__.py b/example/look/api/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/example/look/api/controller.py b/example/look/api/controller.py new file mode 100644 index 0000000..7161b66 --- /dev/null +++ b/example/look/api/controller.py @@ -0,0 +1,6 @@ +from look.model.model import model1 + + +class controller1(object): + def on_get(self, req, resp): + resp.body = "test" diff --git a/example/look/app.py b/example/look/app.py new file mode 100644 index 0000000..3ccddef --- /dev/null +++ b/example/look/app.py @@ -0,0 +1,11 @@ +from wsgiref import simple_server + +import falcon + +from falcon_openapi import OpenApiRouter + +api = application = falcon.API(router=OpenApiRouter(file_path="openapi-spec.yaml")) + +if __name__ == "__main__": + httpd = simple_server.make_server("127.0.0.1", 8000, api) + httpd.serve_forever() diff --git a/example/look/model/__init__.py b/example/look/model/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/example/look/model/model.py b/example/look/model/model.py new file mode 100644 index 0000000..abad83e --- /dev/null +++ b/example/look/model/model.py @@ -0,0 +1,5 @@ +# just an example class to import in controller + + +class model1: + pass diff --git a/example/openapi-spec.yaml b/example/openapi-spec.yaml new file mode 100644 index 0000000..dfcd581 --- /dev/null +++ b/example/openapi-spec.yaml @@ -0,0 +1,11 @@ +openapi: "3.0.0" +info: + version: 1.0.0 + title: Falcon Openapi Example + license: + name: MIT +paths: + /controller: + get: + summary: summary + operationId: api.controller.controller1.on_get