Introduce version number in RESP API root like "/energy/v1/"

This commit is contained in:
Me 2020-12-17 15:09:27 +00:00
parent ce4cd69654
commit 1284154d02
2 changed files with 15 additions and 7 deletions

View file

@ -6,6 +6,12 @@ import databases
import sqlalchemy import sqlalchemy
from sqlite3 import OperationalError from sqlite3 import OperationalError
API_VERSION_MAJOR = 1
API_VERSION_MINOR = 0
REST_API_ROOT = f"/energy/v{API_VERSION_MAJOR}/"
REST_API_VERSION = REST_API_ROOT + ".0"
DATABASE_URL = "sqlite:///./energyDB.sqlite" DATABASE_URL = "sqlite:///./energyDB.sqlite"
# DATABASE_URL = "sqlite://" # DATABASE_URL = "sqlite://"
db = databases.Database(DATABASE_URL) db = databases.Database(DATABASE_URL)
@ -57,7 +63,7 @@ async def shutdown():
# if token != fake_secret_token: # if token != fake_secret_token:
# raise HTTPException(status_code=400, detail="Invalid X-Token header") # raise HTTPException(status_code=400, detail="Invalid X-Token header")
@app.put("/energy/bulkData") @app.put(REST_API_ROOT + "bulkData")
async def putBulkEnergyData(bulkData: BulkData): async def putBulkEnergyData(bulkData: BulkData):
valuesToInsert = [] valuesToInsert = []
for channelData in bulkData.bulk: for channelData in bulkData.bulk:
@ -72,7 +78,7 @@ async def putBulkEnergyData(bulkData: BulkData):
"valuesToInsert": valuesToInsert "valuesToInsert": valuesToInsert
} }
@app.get("/energy/bulkData", response_model = BulkData) @app.get(REST_API_ROOT + "bulkData", response_model = BulkData)
async def getBulkEnergyData(bulkDataRequest: BulkDataRequest): async def getBulkEnergyData(bulkDataRequest: BulkDataRequest):
bulkData = [] bulkData = []
for ch in bulkDataRequest.channel_ids: for ch in bulkDataRequest.channel_ids:

View file

@ -8,7 +8,7 @@ import urllib.parse
from srv import energyDB from srv import energyDB
class Test_energyDb: class Test_energyDb:
restApiRoot = "/energy/v1/"
bulkTestData = [ bulkTestData = [
{ {
"channel_id": 1, "channel_id": 1,
@ -47,7 +47,9 @@ class Test_energyDb:
def _test_bulkData_put(self): def _test_bulkData_put(self):
# response = self.client.put("/energy/bulkData", json=self.bulkTestData); # response = self.client.put("/energy/bulkData", json=self.bulkTestData);
response = self.client.put("/energy/bulkData", json={"bulk": self.bulkTestData}) response = self.client.put(
self.restApiRoot + "bulkData",
json={"bulk": self.bulkTestData})
# print(f"dir(response): {dir(response)}") # print(f"dir(response): {dir(response)}")
# print(f"dir(response.request): {dir(response.request)}") # print(f"dir(response.request): {dir(response.request)}")
# print("---- request") # print("---- request")
@ -68,7 +70,7 @@ class Test_energyDb:
fromTimestamp = datetime.fromisoformat("2020-12-11T12:30:00") fromTimestamp = datetime.fromisoformat("2020-12-11T12:30:00")
tillTimestamp = datetime.fromisoformat("2020-12-11T12:30:59") tillTimestamp = datetime.fromisoformat("2020-12-11T12:30:59")
response = self.client.get( response = self.client.get(
"/energy/bulkData", self.restApiRoot + "bulkData",
json = { json = {
"channel_ids": [1, 2, 3], "channel_ids": [1, 2, 3],
"fromTime": fromTimestamp.isoformat(), "fromTime": fromTimestamp.isoformat(),
@ -100,7 +102,7 @@ class Test_energyDb:
print(f"energyData: {energyData}") print(f"energyData: {energyData}")
# response = self.client.put("/energies/1", json=energyData) #, headers={"X-Token": "coneofsilence"}) # response = self.client.put("/energies/1", json=energyData) #, headers={"X-Token": "coneofsilence"})
response = self.client.put( response = self.client.put(
"/energy/2", self.restApiRoot + "2",
# params=energyData, # params=energyData,
json=energyData) #, headers={"X-Token": "coneofsilence"}) json=energyData) #, headers={"X-Token": "coneofsilence"})
# print(f"dir(response): {dir(response)}") # print(f"dir(response): {dir(response)}")
@ -120,7 +122,7 @@ class Test_energyDb:
@pytest.mark.skip(reason="Ignore me temporarily") @pytest.mark.skip(reason="Ignore me temporarily")
def test_get_energy(self): def test_get_energy(self):
response = self.client.get("/energy/1") response = self.client.get(self.restApiRoot + "1")
# print(f"dir(response): {dir(response)}") # print(f"dir(response): {dir(response)}")
# print(f"dir(response.request): {dir(response.request)}") # print(f"dir(response.request): {dir(response.request)}")
# print("---- request") # print("---- request")