From 2dba82f56d111ecb55ce4eed5fef9341eb27ae4e Mon Sep 17 00:00:00 2001 From: C1-BA-B1-F3 Date: Thu, 25 Jun 2026 21:29:52 +0800 Subject: [PATCH] fix: correct process job status/results response format (#2347) --- pygeoapi/api/processes.py | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/pygeoapi/api/processes.py b/pygeoapi/api/processes.py index f2a4eb588..d699755ec 100644 --- a/pygeoapi/api/processes.py +++ b/pygeoapi/api/processes.py @@ -324,13 +324,13 @@ def get_jobs(api: API, request: APIRequest, if JobStatus[job_['status']] in ( JobStatus.successful, JobStatus.running, JobStatus.accepted): - job_result_url = f"{api.base_url}/jobs/{job_['identifier']}/results" # noqa + job_result_url = f"{api.base_url}/jobs/{job_['identifier']}/results?f={F_JSON}" # noqa job2['links'] = [{ 'href': job_result_url, 'rel': 'http://www.opengis.net/def/rel/ogc/1.0/results', 'type': job_['mimetype'], - 'title': f"Results of job {job_id} as {job_['mimetype']}" + 'title': f"Results of job {job_['identifier']} as {job_['mimetype']}" # noqa }] serialized_jobs['jobs'].append(job2) @@ -592,20 +592,18 @@ def get_job_result(api: API, request: APIRequest, if mimetype not in (None, FORMAT_TYPES[F_JSON]): headers['Content-Type'] = mimetype content = job_output + elif request.format == F_HTML: + headers['Content-Type'] = "text/html" + data = { + 'job': {'id': job_id}, + 'result': job_output + } + content = render_j2_template( + api.config, api.config['server']['templates'], + 'jobs/results/index.html', data, request.locale) else: - if request.format == F_JSON: - content = json.dumps(job_output, sort_keys=True, indent=4, - default=json_serial) - else: - # HTML - headers['Content-Type'] = "text/html" - data = { - 'job': {'id': job_id}, - 'result': job_output - } - content = render_j2_template( - api.config, api.config['server']['templates'], - 'jobs/results/index.html', data, request.locale) + content = json.dumps(job_output, sort_keys=True, indent=4, + default=json_serial) return headers, HTTPStatus.OK, content