Steps to replicate the issue (include links if applicable):
- Run the request in the code below
import requests prod_url = 'https://wikimedia.org/api/rest_v1/metrics/unique-devices/en.wikipedia/all-sites/monthly/@20210501/@20210601' header = {"accept": "application/json", "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36"} response = requests.get(prod_url, headers=header) print(f"The response status code is: {response.status_code}") print(response.json())
What happens?:
the detail key in the error reponse returns a string stype
local AQS 2.0 response:
invalid start date
{ "detail":"start timestamp is invalid, must be a valid date in YYYYMMDD format", "method":"get", "status":400, "title":"Bad Request", "type":"about:blank", "uri":"/metrics/unique-devices/en.wikipedia/all-sites/monthly/@20210501/20210601" }
invalid end date:
{ "detail":"end timestamp is invalid, must be a valid date in YYYYMMDD format", "method":"get", "status":400, "title":"Bad Request", "type":"about:blank", "uri":"/metrics/unique-devices/en.wikipedia/all-sites/monthly/20210501/@20210601" }
both:
{ "detail":"start timestamp is invalid, must be a valid date in YYYYMMDD format", "method":"get", "status":400, "title":"Bad Request", "type":"about:blank", "uri":"/metrics/unique-devices/en.wikipedia/all-sites/monthly/@20210501/@20210601" }
What should have happened instead?:
the detail key in the error reponse should return a list type
prod response :
invalid start date
{ "type":"https://mediawiki.org/wiki/HyperSwitch/errors/invalid_request", "method":"get", "detail":[ "start timestamp is invalid, must be a valid date in YYYYMMDD format" ], "uri":"/analytics.wikimedia.org/v1/unique-devices/en.wikipedia/all-sites/monthly/%4020210501/20210601" }
invalid end date
{ "type":"https://mediawiki.org/wiki/HyperSwitch/errors/invalid_request", "method":"get", "detail":[ "end timestamp is invalid, must be a valid date in YYYYMMDD format" ], "uri":"/analytics.wikimedia.org/v1/unique-devices/en.wikipedia/all-sites/monthly/20210501/%4020210601" }
Software version (skip for WMF-hosted wikis like Wikipedia):
N/A. All API based
both:
{ "type":"https://mediawiki.org/wiki/HyperSwitch/errors/invalid_request", "method":"get", "detail":[ "start timestamp is invalid, must be a valid date in YYYYMMDD format", "end timestamp is invalid, must be a valid date in YYYYMMDD format" ], "uri":"/analytics.wikimedia.org/v1/unique-devices/en.wikipedia/all-sites/monthly/%4020210501/%4020210601" }