This is an old revision of the document!


<?php 

// hatop@ub.uni-marburg.de 2008-12-08 2009-12-03
// http://unapi.info/specs/

/*  Copyright 2008 2009 Goetz Hatop
 *  Goetz Hatop's original Version can be found at
 *  <ftp://ftp.ub.uni-marburg.de/pub/research/unapi.tar.gz> 
 */

/*  Copyright 2009 Stephan Rosenke <rosenke@ulb.tu-darmstadt.de> */

/*  This program is free software: you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation, either version 3 of the License, or
 *  (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

/*  Version:	0.1 */

/*  Changelog
 *  
 *  20091215:   Added JSON as format.
 *  20091214:   s/require/require_once/.
 *              Made last switch() more validator compliant.
 *  20091211:	Added HTTP-Response-Codes to some cases in the last switch.
 * 		Corrected answer if format=''.
 *		Added BibTex as format.
 *  20091210:	Put class Picappn to PicaRecord.php.
 *		Inserted conditional for textual output of array.
 *		Ordered final switch() alphabetically.
 * 		Added format "plain", renamed "picaplus" to "extpp".
		Put header() in the case-loops in final switch().
 *  20091210:	Started with Goetz Hatop's version of 2009-12-08
 */

require_once('PicaRecord.php');

$noparam = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<formats>
<format name=\"bibtex\" type=\"text/plain\" />
<format name=\"dc\" type=\"application/xml\" />
<format name=\"extpp\" type=\"application/xml\" />
<format name=\"rdf\" type=\"application/xml\" />
<format name=\"text\" type=\"text/plain\" />
<format name=\"xml\" type=\"application/xml\" />
</formats>
";

$idparam = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<formats id=\"info:pica/004\">
<format name=\"text\" type=\"text/plain\" />
</formats>
";

if (!isset($_GET[id]) || $_GET[id]=='') {
  header('Content-type: application/xml');
  echo "$noparam";
  return;    
} 

$pica = new Picappn();
$pica->setPpn( $_GET[id] );

if ($_GET[format] == "array") {
  echo "<head></head>\n<body>\n <pre>\n";
  print_r($pica->getArray());
  echo " </pre>\n</body>\n";
  die(0);
}

switch ($_GET[format]) {
  case 'bibtex':
     $res = $pica->getBibTex();
     final_result($res, 'text/plain');
     break;
  case 'dc':
     $res = $pica->getDublinCore();
     final_result($res, 'application/xml');
     break;
  case 'extpp':
     $res = $pica->getPicaPlus();
     final_result($res, 'application/xml');
     break;
  case 'json':
     $res = $pica->getJson();
     final_result($res, 'application/json');
     break;
  case 'plain':
     $res = $pica->getPlain();
     break;
  case 'rdf':
     $res = $pica->getDublinCoreRDF();
     final_result($res, 'application/xml');
     break;
  case 'text':
     $res = $pica->getText();
     final_result($res, 'text/plain');
     break;
  case 'xml':
     $res = $pica->getXmlData();
     final_result($res, 'application/xml');
     break;
  case '':
     header('HTTP/1.0 300 Multiple Choices');
     header('Content-type: application/xml');
     echo "$noparam";
     break;
  default:
     header('HTTP/1.0 406 Not Acceptable');
     break;
}
?>
buechereielektrik/unapi/unapi.php.1260906866.txt · Last modified: 2009-12-15 20:54 by strols
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0