3.1.1 Returning special status codes
Besides returning a page by writing it to the current output stream,
the server goal can raise an exception using throw/1
to generate special pages such as not_found
, moved
,
etc. The defined exceptions are:
- http_reply(+Reply, +HdrExtra, +Context)
- Return a result page using http_reply/3. See http_reply/3 for supported values for Reply and section 3.10 for providing a custom error page.
- http_reply(+Reply, +HdrExtra)
- Return a result page using http_reply/3.
Equivalent to
http_reply(Reply, HdrExtra,[])
. - http_reply(+Reply)
- Equivalent to
http_reply(Reply, [],[])
. - http(not_modified)
- Equivalent to
http_reply(not_modified,[])
. This exception is for backward compatibility and can be used by the server to indicate the referenced resource has not been modified since it was requested last time.
In addition, the normal "200 OK"
reply status may be
overruled by writing a CGI Status
header prior to the
remainder of the message. This is particularly useful for defining REST
APIs. The following handler replies with a "201 Created"
header:
handle_request(Request) :- process_data(Request, Id), % application predicate format('Status: 201~n'), format('Content-type: text/plain~n~n'), format('Created object as ~q~n', [Id]).