Welcome to the documentation of the Picturae Webkitchen components, on this website you can find information how to implement our components on your own website.

You can also try the demo to see how our application should behave. In case you have any questions you can contact us at contact@picturae.com.

Picturae Webkitchen - Mediabank 2.0

Mediabank - recipes and ingredients

The following page gives information about the available recipes and their ingredients.

  • /{catch:(.*)}

    Method: options
                    
    Capture all OPTIONS requests
    
                
  • /media

    Method: get
                    
    Search media, this endpoint receives the following parameters, use filter values without the {} signs
    q={searchterm} global search term could search on specific fields e.g. field:{term}
    page={number} result offset
    rows={number} amount of rows to return in resultset, default 100 max 1000
    facetFields[]={field1} Field to return facets for
    facetFields[]={field2} Field to return facets for
    facetLimit={int} Amount of filters to return
    fq[]={field1:"value x"} Apply filter to query
    fq[]={field2:"value y"} Apply filter to query
    qf={title^20.0+text^10.0} Apply boosting per field to improve search results
    bq={title:"bla"^20} Apply boost query improve search results
    sort={field asc, field2 desc} sort by field, to generate a random result it is possible to order on random{time} asc
    lang={val} Two character language (if available e.g nl
    f[{field}][{param}]={value} Field parameter override
    f[field]['facet.sort'] = 'count or index' to sort a facet
    Example request: /media/?apiKey={key}&q=*:*&page=1&rows=1&facetFields[]=string_s_v1_uiterlijke_vorm&facetFields[]=strings_s_v1_vervaardigers&facetLimit=2&fq[]=string_s_v1_uiterlijke_vorm:"foto's"
    Errors will always be shown in error property example:
    
    { "error": {
          "code": 400,
          "message": "undefined field: \"strinxg_s_v1_uiterlijke_vorm\""
      }}
    
    
                
  • /media/{id:\{?.*\}?}

    Method: get
                    
    Get detail of media object
    Request:
    Example /media/{id}?apiKey={key}
    Response:
    Required properties media.id is always returned example response is:
    
    {
      media: {
       {
          id: "0031bb22-66f5-11e3-90a8-836b6c51694e",
          image: ["3475fb86-1490-46ab-512c-9a7d7d094bc5.jpg"],
          metadata: {
             'field': {
                 label: "Some label"
                 value: "Some value"
             }
          }
         asset: [
           {
              "uuid": "ec82bd5f-35f6-3e51-8cff-4e539b75a9fc",
              "name": "WAT120003777.tjp",
               "mimetype": "image/tjp",
               "thumb": {
                  "small": "https://images.memorix.nl/wat/thumb/100x100/ec82bd5f-35f6-3e51-8cff-4e539b75a9fc.jpg",
                  "medium": "https://images.memorix.nl/wat/thumb/250x250/ec82bd5f-35f6-3e51-8cff-4e539b75a9fc.jpg",
                  "large": "https://images.memorix.nl/wat/thumb/640x480/ec82bd5f-35f6-3e51-8cff-4e539b75a9fc.jpg"
                 },
              "topview": "http://images.memorix.nl/wat/topviewjson/memorix/ec82bd5f-35f6-3e51-8cff-4e539b75a9fc"
           }
         ]
        }
      }
    }
    
    Errors will always be shown in error property example:
    
    {
     "error": {
         "code": 400,
         "message": "undefined field: \"strinxg_s_v1_uiterlijke_vorm\""
     }
    }
    
    
                
  • /media/autocomplete

    Method: get
                    
    Autocomplete method, the returned result will always be over all documents
    q={keyword}
    Example response will be as following:
    /media/autocomplete?q=co
    
    {
       autocomplete: {
          "co": {
              "suggestion": [
                  "collectie",
                  "cornelis"
              ]
          }
          },
          "term2": {
              "suggestion": [
                  "collectie",
                  "cornelis"
              ]
          },
          "collation": "collectie"
       }
    }
    
    
                
  • /media/field

    Method: get
                    
    Provides info about filterable & search fields
    Request:
    Example /media/field/?apiKey={key}
    example response:
    {
      "fields": {
        "field": {
          "order": "order_s_omschrijving",
          "search": "search_t_omschrijving",
          "facet": "search_s_omschrijving"
        }
      }
    }
    
                
  • /media/{id:\{?.*\}?}/downloadoriginal/{assetId:\{?.*\}?}

    Method: get
                    
    
                
  • /media/{id:\{?.*\}?}/downloadfile/{assetId:\{?.*\}?}

    Method: get
                    
    serves a file downloaded from the imageserver, depends on search_s_download_type in the solr document
    which should contain a value for the config to use.
    
                
  • /media/assets/{id:\{?.*\}?}

    Method: get
                    
    q={searchterm} global search term could search on specific fields e.g. field:{term}
    page={number} result offset
    rows={number} amount of rows to return in resultset, default 100 max 1000
    sort={field asc, field2 desc} sort by field, default order_i_ordering desc
    Example request: /media/assets/{uuid}?apiKey={key}&page=1&rows=10&sort=order_i_ordering%20%asc
    Errors will always be shown in error property example:
    
    { "error": {
          "code": 400,
          "message": "undefined field: \"strinxg_s_v1_uiterlijke_vorm\""
      }}
    
    
    
                
  • /media/refresh

    Method: post
                    
    Refresh metadata from record, refresh is currently only supported for data from maior
    This endpoint is limited to 1 request every 5 seconds
    Request:
    POST /media/refresh/?apiKey={key}&entity={uuid}&id={uuid}
    example response:
    200
    {
      "msg": "Record metadata refreshed"
    }
    
                
  • /iiif/{id:\{?.*\}?}/{type:\{?.*\}?}

    Method: get
                    
    Get detail of media object
    Request:
    Example /media/{id}?apiKey={key}
    Response:
    Required properties media.id is always returned example response is:
    
    {
      media: {
       {
          id: "0031bb22-66f5-11e3-90a8-836b6c51694e",
          image: ["3475fb86-1490-46ab-512c-9a7d7d094bc5.jpg"],
          metadata: {
             'field': {
                 label: "Some label"
                 value: "Some value"
             }
          }
         asset: [
           {
              "uuid": "ec82bd5f-35f6-3e51-8cff-4e539b75a9fc",
              "name": "WAT120003777.tjp",
               "mimetype": "image/tjp",
               "thumb": {
                  "small": "https://images.memorix.nl/wat/thumb/100x100/ec82bd5f-35f6-3e51-8cff-4e539b75a9fc.jpg",
                  "medium": "https://images.memorix.nl/wat/thumb/250x250/ec82bd5f-35f6-3e51-8cff-4e539b75a9fc.jpg",
                  "large": "https://images.memorix.nl/wat/thumb/640x480/ec82bd5f-35f6-3e51-8cff-4e539b75a9fc.jpg"
                 },
              "topview": "http://images.memorix.nl/wat/topviewjson/memorix/ec82bd5f-35f6-3e51-8cff-4e539b75a9fc"
           }
         ]
        }
      }
    }
    
    Errors will always be shown in error property example:
    
    {
     "error": {
         "code": 400,
         "message": "undefined field: \"strinxg_s_v1_uiterlijke_vorm\""
     }
    }
    
    
                
  • /iiif/refresh

    Method: post
                    
    Refresh metadata from record, refresh is currently only supported for data from maior
    This endpoint is limited to 1 request every 5 seconds
    Request:
    POST /media/refresh/?apiKey={key}&entity={uuid}&id={uuid}
    example response:
    200
    {
      "msg": "Record metadata refreshed"
    }
    
                
  • /filter/{field}

    Method: get
                    
    List filters, this endpoint receives the following parameters:
    q={searchterm} global search term could search on specific fields e.g. field:{term}
    page={number} result offset
    rows={number} amount of rows to return in resultset, default 100 max 1000
    fq[]={field1:"value x"} Apply filter to query
    fq[]={field2:"value y"} Apply filter to query
    facetSort={index, count} Index will sort filters by ascii value, count will sort the filters by result
    lang={val} Two character language (if available e.g nl)
    Example request: /filter/{filter_field}?apiKey={key}&q=*:*&page=1&rows=1
    
                
  • /filter/{field}

    Method: post
                    
    List filters, this endpoint receives the following parameters:
    q={searchterm} global search term could search on specific fields e.g. field:{term}
    page={number} result offset
    rows={number} amount of rows to return in resultset, default 100 max 1000
    fq[]={field1:"value x"} Apply filter to query
    fq[]={field2:"value y"} Apply filter to query
    facetSort={index, count} Index will sort filters by ascii value, count will sort the filters by result
    lang={val} Two character language (if available e.g nl)
    Example request: /filter/{filter_field}?apiKey={key}&q=*:*&page=1&rows=1
    
                
  • /theme/{id:\{?[0-9a-f]{8}\-?[0-9a-f]{4}\-?[0-9a-f]{4}\-?[0-9a-f]{4}\-?[0-9a-f]{12}\}?}

    Method: get
                    
    Get detail of theme object
    Request:
    Example /theme/0031bb22-66f5-11e3-90a8-836b6c51694e?apiKey=8b896a87-ca04-44a7-9fb3-270102e28d97
    Response:
    Required properties theme.id is always returned example response is:
    
    {
      theme: {
       {
         "id": "77e3b62a-66f5-11e3-989f-13c99c793129",
         "title": "Winter",
         "subject": "Winter",
         "description": "Winter in Waterland: historische beelden van sneeuwduinen, kruiend ijs, ingevroren vissersschepen en het in de sneeuw vastgelopen boemeltje van Purmerend.",
         "tags": [
         ],
         "media": [
             {
                 "file": "0c900ef2-366a-4d60-b665-43b3beac29d8",
                 "name": "WAT002002435",
                 "mimetype": "image/tjp",
                 "thumb": {
                     "small": "https://images.memorix.nl/wat/thumb/100x100/0c900ef2-366a-4d60-b665-43b3beac29d8.jpg",
                     "medium": "https://images.memorix.nl/wat/thumb/250x250/0c900ef2-366a-4d60-b665-43b3beac29d8.jpg",
                     "large": "https://images.memorix.nl/wat/thumb/640x480/0c900ef2-366a-4d60-b665-43b3beac29d8.jpg"
                 },
                 "links": {
                     "media": "http://mediabank.zend.picturae.pro/media/beeda450-66f4-11e3-b2b3-87007032ba84"
                 }
             }
           ]
        }
      }
    }
    
    Errors will always be shown in error property example:
    
    { "error": {
          "code": 400,
          "message": "undefined field: \"strinxg_s_v1_uiterlijke_vorm\""
      }}
    
    
                
  • /theme

    Method: get
                    
    Search theme's, this endpoint receives the following parameters, use filter values without the {} signs
    q={searchterm} global search term could search on specific fields e.g. field:{term}
    page={number} result offset
    rows={number} amount of rows to return in resultset, default 100 max 1000
    facetFields[]={field1} Field to return facets for
    facetFields[]={field2} Field to return facets for
    fq[]={field1:"value x"} Apply filter to query
    fq[]={field2:"value y"} Apply filter to query
    Example request: /theme/?apiKey=8b896a87-ca04-44a7-9fb3-270102e28d97&q=*:*&page=1&rows=1&facetFields[]=tags&facetFields[]=strings_s_v1_vervaardigers&facetLimit=2&fq[]=string_s_v1_uiterlijke_vorm:"foto's"
    Errors will always be shown in error property example:
    
    { "error": {
          "code": 400,
          "message": "undefined field: \"title_x\""
      }}
    
    
                
  • /config/{id:[a-zA-Z0-9_-]+}

    Method: get
                    
    Show predefined config for the client this endpoint receives the following parameters:
    lang={language} Optional language
    Example request: /config/{config-id}?apiKey={key}&lang=nl
    
                
  • /config

    Method: get
                    
    List all available predefined config for the client to use, the following parameters are available:
    lang={language} Optional language
    meta={0(default)|1} Return the list of metafields for the configuration.
    Request:
    Example /config/?apiKey={key}&lang=nl&meta=1
    
                
  • /smil/{id:\{?[0-9a-f]{8}\-?[0-9a-f]{4}\-?[0-9a-f]{4}\-?[0-9a-f]{4}\-?[0-9a-f]{12}\}?}/asset/{asset:\{?[0-9a-f]{8}\-?[0-9a-f]{4}\-?[0-9a-f]{4}\-?[0-9a-f]{4}\-?[0-9a-f]{12}\}?}

    Method: get
                    
    Get streaming details for specific assets
    Request:
    Example /smil/{id}/{asset}.smil?apiKey={key}
    
                
  • /auth

    Method: post
                    
    Request Authorization tocken from the api.
    This endpoint is accessible only for POST requests.
    Required Parameters:
    handshakeKey={client handshake key to the api}
    Example Request:
    POST
    /auth?apiKey={apiKey}
    handshakeKey=111111-1111-1111-1111-00000
    Example Successful Return:
    {
         "status" = 0,
         "data" => {unique uuid}
         "msg" => ''
    }
    Use the returned in the data uuid for the future requests to mediabank.
    Note: Handshake Key should be secret! Dunno use it as GET parameter.
                
  • /export

    Method: get
                    
    Request Pdf export, this endpoint receives the following parameters, use filter values without the {} signs
    header={header-uuid} Record details to be used as PDF-header
    email={email-address} Email address where the client will recieve the details about the created pdf
    q={searchterm} global search term could search on specific fields e.g. field:{term}
    page={number} result offset
    rows={number} amount of rows to return in resultset, default 100 max 1000
    fq[]={field1:"value x"} Apply filter to query
    fq[]={field2:"value y"} Apply filter to query
    lang={val} Two character language (if available e.g nl)
    Example request:
         /media/pdf?apiKey={key}&q=search_s_searchfield:"inventaris"&page=2&rows=30&fq[]=string_s_collection:"foto's"
    Errors will always be shown in error property example:
    
     {
         "error": {
             "code": 400,
             "message": "undefined field: \"string_s_collection\""
         }
     }
    
    
                
  • /download/{id:\{?.*\}?}

    Method: get
                    
    Fetch a previously generated file. This is NOT A restful
    action. This endpoing is being used to serve files when the
    e-mail notifications about exports are being sent. The urls's
    are generated in the export gearman.
    Example request:
         /download/{uuid}.{pdf|csv}?apiKey={key}
    to be improved. As far as I could see it fatal errors on bad file.
                
  • /comments

    Method: get
                    
    Fetch comments
    Example request: /{id}/?apiKey={key}
    Errors will always be shown in error property example:
    
    {
    "error": {
    "code": 400,
    "message": "Could not find the requested record."
    }
    }
    
    
                
  • /comments

    Method: post
                    
    Add an error report.
    Data is expected in the POST.
    id={id} ID of the record tht is being commented. Usually a deed.
    name={val} Name of the user who wrote the report.
    email={val} Email of the user who wrote the comment.
    subject={val} Subject/summary of the entered report.
    body={val} Full body of the entered report.
    Errors will always be shown in error property example:
    
    {
    "error": {
    "code": 400,
    "message": "Could not find the requested record."
    }
    }
    
    
                
  • /bounds

    Method: get