Record API
            
            
            
                
                
                
============
 Record API
============
The search module exposes records via `/record` URLs.  You can
manipulate URL parameters to alter output format in order to return
interesting information in API like manner.
1. XML API
==========
Syntax:
   GET /record/?of=...&ot=...
Parameters:
   of = output format (e.g. `xm` for MARCXML)
   ot = output tags (e.g. `` to get all fields, `100` to get titles only)
Pros:
   Eesy web search -> API search context switch.  Uses the same
   parameters as in visible UI.
Cons:
   The XML API output covers only MARC metadata.
Notes:
   The master format of Invenio records is usually MARC.  Hence
   chances are you would like to use `of=xm` output format parameter
   in your XML API queries in order to get the richest data.
Example: (return only record ID, first author, and title of a record)
   GET /record/451647?of=xm&ot=100,245
   <?xml version="1.0" encoding="UTF-8"?>
   <collection xmlns="http://www.loc.gov/MARC21/slim">
   <record>
     <controlfield tag="001">451647</controlfield>
     <datafield tag="100" ind1=" " ind2=" ">
       <subfield code="a">Maldacena, Juan Martin</subfield>
       <subfield code="i">INSPIRE-00304313</subfield>
       <subfield code="u">Harvard U.</subfield>
     </datafield>
     <datafield tag="245" ind1=" " ind2=" ">
       <subfield code="a">The Large N limit of..</subfield>
     </datafield>
   </record>
   </collection>
2. JSON API
===========
Syntax:
   GET /record/?of=...&ot=...
Parameters:
   of = output format (e.g. `recjson` for JSON)
   ot = output tags (e.g. `` to get all fields, `number_of_citations` to get citation counts only)
Pros:
   The JSON API cover field abstraction (support for virtual fields,
   e.g.  number of citations or book circulation counts) as well as
   master format abstraction (e.g. UNIMARC, EAD).
Cons:
   May be slow at times if `recjson` is not cached on the server.
   (See `CFG_BIBUPLOAD_SERIALIZE_RECORD_STRUCTURE`.)
   Not yet REST-ified; just an evolution of HTTP XML API described
   above.
Example: (getting citation counts)
   GET /record/451647?of=recjson&ot=recid,number_of_citations,authors,title
   {
     "recid": 451647,
     "number_of_citations": 9739,
     "authors": [{
         "INSPIRE_number": "INSPIRE-00304313",
         "affiliation": "Harvard U.",
         "first_name": "Juan Martin",
         "last_name": "Maldacena",
         "full_name": "Maldacena, Juan Martin"
     }],
     "title": {
        "title": "The Large N limit of ... ity"
     }
   }
3. Python API
=============
Signature:
   def get_record(recID)
Signature:
   def print_record(recID, format='hb', ot='', ...)