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.get("/")
def root(request: Request):
interfaces = {}
for interface in netifaces.interfaces():
interfaces[interface] = []
for link in netifaces.ifaddresses(interface).values():
for group in link:
interfaces[interface].append(group['addr'])
return {
def root(request: Request, x_full_response: bool = Header(False)):
response = {
"method": request.method,
"url": {
"url": request.url._url,
@ -32,14 +25,27 @@ def root(request: Request):
"host": {
"hostname": platform.node(),
"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