Axiell WebAPI home page > Documentation > Provisional release notes for WebAPI

Provisional release notes for WebAPI

Provisional release notes

Version is not an official release version yet. These release notes will be updated when new bug fixes and functionality are added before the final release.

Bug fixes

  • OAI performance for the listrecords command was not as good as it could be. The fix in gives a substantial performance improvement for this request.
  • The adlibweb.xml <xmlType>raw</xmlType> setting didn't output raw xml when using OAI: always grouped XML was generated. Fixed in
  • OAI responses didn't quite validate to the OAI-PMH validator. Fixed in
  • When a record contained undefined tags, it could not be retrieved via the WebAPI or OAI. OAI ouput would even stop on encountering such a record. The fix makes sure that for records with errors a log entry is added and that an empty record is listed in the OAI response. Fixed in
  • OAI Error code handling was incorrect or unclear in some situations, namely for unknown resumptionTokens, a wrong verb and retrieving a specific identifier. Fixed in version
  • In a Full Text indexed database, a "when" search gave an error because an index from the old index structure was searched. Fixed in
  • In a Full Text indexed database, an "autocomplete" which references a long text field failed because an index from the old index structure was searched. Fixed in
  • A scan in a Full Text indexed database used the old index tables people_name or thesau_term instead of the new full text index table. Fixed in version
  • The op="" attribute in a <field> element, as introduced in was ignored when the field used indirection. Fixed in
  • Some facets queries failed when the facet referenced a linked field because the query included domain = '' in the where clause when the domain field was actually stored as NULL. Fixed in
  • WebAPI command=getcontent gave a "cannot load file or assembly 'Magick.NET-Q16-AnyCPU, Version=" error. Fixed in version
  • Posting data with a non-unique term and a flexible domain that was assigned to only one of those terms, failed incorrectly with an error message that multiple linked records were possible so no link could be made. Note that if multiple records for the same term do contain the same domain and this term and domain are posted for a write action, then the same error will be generated, but correctly so this time because the WebAPI cannot make a choice between records which have the same term and the same domain. Fixed in
  • A WebAPI search in a Full Text indexed database, using the contains operator, returned a SQL error: Invalid column name 'strippedterm'. This was fixed in WebAPI version
  • An OAI from date search did not match the modification date in a database with indexed links: records from before the specified date were returned too. Fixed in version
  • An insertrecord call for a record with a link to an existing record, inserted the record all right but tried to create a new linked record instead of making the link to the existing other record. This was fixed in
  • Multilingual fields were excluded from the output, if one multilingual value was empty. This was fixed in version
  • When searching with the contains operator on two or more words in a Full Text enabled database, the words were treated as a phrase (words in that particular order) instead of independent words in any random order. This was fixed in version

New functionality

All search syntax options implemented for Full Text indexed databases

Previously there was no way to differentiate contains any from contains all: a contains search would always be a contains any search. And a contains all type of search was not available for q searches either. In WebAPI version this has been solved. The operators containsall (short version: $), containsany (short version: _) and containsphrase (short version: ~) have been implemented. So with the following sample data:
- record 1 containing ti = buster keaton
- record 2 containing ti = diane keaton

You can do the following searches:

title containsany “keaton buster”
title _ “keaton buster“
would return both records as they both have keaton in the title.

title containsall “keaton buster”
title $ “keaton buster“
would return record 1 as that has both buster and keaton

title containsphrase “keaton buster”
title ~ “keaton buster“
wouldn't return any record because neither contains this phrase.

Moreover, in the <searchfields> section in adlibweb.xml, you can now specify per search field which operator to use if you perform a q search with the WebAPI. You do that by including an op="" attribute in a <field> element. The following operators are supported here:

= (also the default if the op attribute is not used)
>, >=, < and <=
containsall or $
containsany or _
containsphrase or ~

For example:

<field op=”containsall”>title</field>
<field op="containsall">description</field>
<field op="=">object_number</field>
    <field op="containsall">term.word</field>

OAI performance improvement

The SQL query to harvest each new set of records (after a resumption token) has been optimized, leading to an OAI performance improvement.

JP2 (jpeg 2000) support added

Since jpeg 2000 support in browsers is limited to Safari, only download (without display in the browser) of the jp2 file type is now fully supported by the Axiell WebAPI and up, while for display the file must be converted to a normal jpeg file by adding the &imageformat=jpeg parameter to the WebAPI getcontent call. The size of the downloaded image is determined by either the maxWidth and maxHeight setting in the image server configuration (set them to 0 for retrieving an unscaled file) or (if no explicit settings for width and height were made) by the default maximum dimensions used by the WebAPI.

New Azure Blob Storage media plugin

From WebAPI version, an Axiell.AzureBlobStorage.Plugin.dll plugin for the Axiell WebAPI is available to allow the ingest and retrieval of files in and from Microsoft Azure Blob Storage. Please see the full topic for more information.