From 8139e58ccbadeb28f6c5f1c88913b23c3b894526 Mon Sep 17 00:00:00 2001 From: Tomas Cohen Arazi Date: Tue, 11 Sep 2018 10:48:15 -0700 Subject: [PATCH] Bug 21334: Add bibliographic content type definitions This patch adds the following content type definitions, to be used by endpoint authors implementing MARC-related endpoints: -------------------------------------- | Content-type | Alias | |--------------------------|---------| | application/marcxml+xml | marcxml | | application/marc-in-json | mij | | application/marc | marc | -------------------------------------- Code using this aliases will use them like this: - Suppose you want to output data in MARCXML format: my $record = cool_method_that_returns_MARC_RECORD(); return $c->render( status => 200, format => 'marcxml', text => $record->as_xml_record ); Note: 'text' by defaults encodes output as UTF-8. If the encoding is not UTF-8 you should encode the data on your own. To test: - Apply this patches - Run: $ kshell k$ prove t/db_dependent/Koha/REST/V1.t => SUCCESS: Test pass! - Sign off :-D Signed-off-by: Michal Denar Signed-off-by: Josef Moravec --- Koha/REST/V1.pm | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Koha/REST/V1.pm b/Koha/REST/V1.pm index 57ad113..73eed81 100644 --- a/Koha/REST/V1.pm +++ b/Koha/REST/V1.pm @@ -44,7 +44,12 @@ sub startup { }); # Force charset=utf8 in Content-Type header for JSON responses - $self->types->type(json => 'application/json; charset=utf8'); + $self->types->type( json => 'application/json; charset=utf8' ); + # MARC-related types + $self->types->type( marcxml => 'application/marcxml+xml' ); + $self->types->type( mij => 'application/marc-in-json' ); + $self->types->type( marc => 'application/marc' ); + my $secret_passphrase = C4::Context->config('api_secret_passphrase'); if ($secret_passphrase) { -- 2.1.4