From 599602ed24be399117d1783886307a889429d33a Mon Sep 17 00:00:00 2001 From: JJ Date: Sun, 23 Sep 2018 20:12:25 -0300 Subject: [PATCH] Fix: typo in docs --- docs/api/auth.md | 2 +- docs/assets/images/example.png | Bin 20430 -> 0 bytes docs/assets/images/example_feature_by_id.png | Bin 0 -> 20978 bytes docs/assets/images/example_features.png | Bin 0 -> 20133 bytes docs/index.md | 2 +- docs/tutorial.md | 112 +++++++++++++++++++ docs/use.md | 3 - mkdocs.yml | 2 +- 8 files changed, 115 insertions(+), 6 deletions(-) delete mode 100644 docs/assets/images/example.png create mode 100644 docs/assets/images/example_feature_by_id.png create mode 100644 docs/assets/images/example_features.png create mode 100644 docs/tutorial.md delete mode 100644 docs/use.md diff --git a/docs/api/auth.md b/docs/api/auth.md index 130fbf3..89a1cf9 100755 --- a/docs/api/auth.md +++ b/docs/api/auth.md @@ -52,7 +52,7 @@ print(response.json()) {"message": "Wrong credentials"} ``` -!!! tip "Header authorization" +!!! tip "Authorization header" Every new request you will made is necessary add this 'token' on authorization header. diff --git a/docs/assets/images/example.png b/docs/assets/images/example.png deleted file mode 100644 index 3b4b556f69b8099f5175623f36b51516248976f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20430 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 WpR|_zoB=$ikHOQ`&t;ucLK6TQ`CPaF diff --git a/docs/assets/images/example_feature_by_id.png b/docs/assets/images/example_feature_by_id.png new file mode 100644 index 0000000000000000000000000000000000000000..72604c52f6b7f5f17f4ce78752c8f20d7c171e55 GIT binary patch literal 20978 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 literal 0 HcmV?d00001 diff --git a/docs/assets/images/example_features.png b/docs/assets/images/example_features.png new file mode 100644 index 0000000000000000000000000000000000000000..0eed1513cb05f93977be77694c109f612f2c795a GIT binary patch literal 20133 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 literal 0 HcmV?d00001 diff --git a/docs/index.md b/docs/index.md index 960a636..d4209bf 100755 --- a/docs/index.md +++ b/docs/index.md @@ -17,7 +17,7 @@ Feature flags / toggle give a software organization the power to reduce risk, iterate quicker, and gain more control. Feature flags allow you to decouple feature rollout from code deployment. This separation allows you unprecedented control of who sees what when, independent of release. And the “you” can be anyone in your organization – from developers, ops, designers, product managers, or marketers. Allowing control over a release unlocks the true power of your software. -![Example](assets/images/example.png) +![Example](assets/images/example_features.png) The main goal for this project is create a simple and open source application for managing your features in production. diff --git a/docs/tutorial.md b/docs/tutorial.md new file mode 100644 index 0000000..db4da65 --- /dev/null +++ b/docs/tutorial.md @@ -0,0 +1,112 @@ +The Featuren is a software for you managing your features in production, this way.. + +## # Setup + +### Create user + +### login user + +### Create two services + +### Create feature + + + +## # Use Featuren + +Each service has a unique token, use this token to get the respective features. + +![Example](assets/images/example_feature_by_id.png) + +## Get feature by id + +This request is very similiar to here, but now we will use service token for authorization. + +GET /features/{id} + +### Request + +```http tab="HTTP" + +GET /features/search-button HTTP/1.1 +Authorization: Token _Ld_k_26y7H-Ar9og6cEz54rkNZEDkW1BIrkgSAFFg +``` + + + +```bash tab="Curl" +curl "http://0.0.0.0:8000/features/search-button" \ + -H 'Authorization: Token _Ld_k_26y7H-Ar9og6cEz54rkNZEDkW1BIrkgSAFFg' +``` + +```python tab="Python" + +# Install the Python Requests library: +# `pip install requests` + +import requests + +host = "http://0.0.0.0:8000" +token = "_Ld_k_26y7H-Ar9og6cEz54rkNZEDkW1BIrkgSAFFg" + +headers = {"Authorization": f"Token {token}"} +response = requests.get(f"{host}/features/search-button", headers=headers) + +print(response.json()) + + +``` + +### Response +```json tab="200" +{"id":"search-button","version":"1.0.0"} +``` + +```json tab="400" +{"message":"Unauthorized, invalid token"} +``` + +```json tab="403" +{"message":"Access denied to resource"} +``` + + +### Change feature availability + +```http tab="HTTP" + +POST /auth/login HTTP/1.1 +Content-Type: application/json; charset=utf-8 +Host: 0.0.0.0:8000 +Connection: close + +{"username":"user","password":"secret"} +``` + + + +```bash tab="Curl" +curl -X "POST" "http://0.0.0.0:8000/auth/login" \ + -H 'Content-Type: application/json; charset=utf-8' \ + -d '{ + "username": "user", + "password": "secret" + }' +``` + +```python tab="Python" + +# Install the Python Requests library: +# `pip install requests` + +import requests + +host = "http://0.0.0.0:8000" + +user = {"username": "user", "password": "secret"} +response = requests.post(f"{host}/auth/login", user) + +print(response.json()) +``` + + diff --git a/docs/use.md b/docs/use.md deleted file mode 100644 index d40ef0e..0000000 --- a/docs/use.md +++ /dev/null @@ -1,3 +0,0 @@ - - -# Let's go! diff --git a/mkdocs.yml b/mkdocs.yml index 6fec5dd..056ea95 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -36,6 +36,6 @@ nav: - Services: 'api/services.md' - Features: 'api/features.md' - - Use case: 'use.md' + - Tutorial: 'tutorial.md' dev_addr: '0.0.0.0:7000'