Header to toggle full response

This commit is contained in:
Xeryus Stokkel 2022-02-03 15:52:07 +01:00
parent 273e341789
commit df1c24daa6
Signed by: Xeryus Stokkel
GPG Key ID: 7023C2C891DDE681
1 changed files with 24 additions and 18 deletions

42
main.py
View File

@ -7,15 +7,8 @@ import netifaces
app = FastAPI() app = FastAPI()
@app.get("/") @app.get("/")
def root(request: Request): def root(request: Request, x_full_response: bool = Header(False)):
interfaces = {} response = {
for interface in netifaces.interfaces():
interfaces[interface] = []
for link in netifaces.ifaddresses(interface).values():
for group in link:
interfaces[interface].append(group['addr'])
return {
"method": request.method, "method": request.method,
"url": { "url": {
"url": request.url._url, "url": request.url._url,
@ -32,14 +25,27 @@ def root(request: Request):
"host": { "host": {
"hostname": platform.node(), "hostname": platform.node(),
"fqdn": socket.getfqdn(), "fqdn": socket.getfqdn(),
"python": platform.python_version(),
"os": {
"system": platform.system(),
"release": platform.release(),
"version": platform.version(),
},
"ip-addresses": interfaces,
} }
} }
if not x_full_response:
return response
interfaces = {}
for interface in netifaces.interfaces():
interfaces[interface] = []
for link in netifaces.ifaddresses(interface).values():
for group in link:
interfaces[interface].append(group['addr'])
response["host"].update({
"python": platform.python_version(),
"os": {
"system": platform.system(),
"release": platform.release(),
"version": platform.version(),
},
"ip-addresses": interfaces,
})
return response