Hello,

this is an example of setting a 404 by overwriting what the REST
annotations would produce. I had to gathered pieces of specs
together in order to have it working. Please tell me if I'm missing
the documentation that cover this. Feedback are welcome.

    declare %rest:path("/categories/{$category}")
            %rest:GET
            %rest:produces("application/atomcat+xml")
            %output:omit-xml-declaration("no")
            %output:media-type("application/atomcat+xml")
      function page:category($category as xs:string) {
        if (db:exists('categories', $category || '.xml')) then
          doc('categories/' || $category || '.xml')
        else
          let $reason := "Category scheme not found" return
          <rest:response>
            <http:response status="404" reason="{$reason}">
              <!--<http:header name="string" value="string"/>-->
            </http:response>
            <output:serialization-parameters>
              <output:omit-xml-declaration value="yes"/>
              <output:media-type value="text/plain"/>
            </output:serialization-parameters>
          </rest:response>
    };

Would produce the following on a not found document:

    HTTP/1.1 404 Not Found
    Content-Type: text/plain; charset=utf-8
    Content-Length: 25
    Server: Jetty(6.1.26)

    Category scheme not found


-- Philippe
_______________________________________________
BaseX-Talk mailing list
[email protected]
https://mailman.uni-konstanz.de/mailman/listinfo/basex-talk

Reply via email to