new model runner content type/accept header 05/4405/2 master
authorjustin14 <justin.early@est.tech>
Thu, 30 May 2019 21:39:25 +0000 (21:39 +0000)
committerjustin14 <justin.early@est.tech>
Thu, 30 May 2019 21:39:25 +0000 (21:39 +0000)
- replace old content-type text/plain with protobuf when using /model/method/*
- add Accept header for accepting protobuf as response
- update demonstration.rst

Issue-Id: ACUMOS-2898

Change-Id: I9e8a2bfaa17892cf81a30f662693e0cd0684f50f
Signed-off-by: justin14 <justin.early@est.tech>
docs/tutorials/demonstration.rst
web_demo/demo-framework.js

index 8fc405d..7fe9da0 100644 (file)
@@ -110,12 +110,28 @@ model and this web page are using the same ``.proto`` file.
 
       ::
 
 
       ::
 
-          urlDefault: "http://localhost:8884/transform",
+          urlDefault: "http://localhost:8884/model/methods/detect",
 
 -  view the page ``face-privacy.html`` in a Crome or Firefox browser
 -  you can switch between a few sample images or upload your own by
    clicking on the buttons below the main image window
 
 
 -  view the page ``face-privacy.html`` in a Crome or Firefox browser
 -  you can switch between a few sample images or upload your own by
    clicking on the buttons below the main image window
 
+Compatibility
+-------------
+If you want to run against the Boreas model runner you must set the URL to end
+with /model/methods/detect. The key is that in Boreas release the model runner
+api has changed. You can see the swagger for the model if you visit the source
+model's swagger.
+
+If you have a model that was onboarded using Athena release you do not need
+the /model/methods check. Use /detect instead. Another change that was made
+in Boreas model runner was that you must send the http headers before the
+default was protobuf. These headers will change automatically when use use
+/model/methods/detect as the URL path.
+
+    - Content-type: application/vnd.google.protobuf
+    - Accept: application/vnd.google.protobuf
+
 
 Special decoding example
 ------------------------
 
 Special decoding example
 ------------------------
index 2997f53..d0be813 100644 (file)
@@ -63,7 +63,8 @@ function demo_init(objSetting) {
         documentTitle: "Protobuf Demo",
         mediaList: [],        //relative URLs of media files
         protoList: [],        //relative URLs of proto files to include
         documentTitle: "Protobuf Demo",
         mediaList: [],        //relative URLs of media files
         protoList: [],        //relative URLs of proto files to include
-        domHeaders: { "Content-type": "text/plain;charset=UTF-8" },   //defaults for headers
+        domHeadersV1: { "Content-type": "text/plain;charset=UTF-8" },   //defaults for headers for model runner without path /model/methods/ context
+        domHeadersV2: { "Content-type": "application/vnd.google.protobuf", Accept: 'application/vnd.google.protobuf' },   //defaults for headers
         // TODO: should be binary ideally, domHeaders: { "Content-type": "application/octet-stream;charset=UTF-8" },   //defaults for headers
 
         // Objects from DOM elements
         // TODO: should be binary ideally, domHeaders: { "Content-type": "application/octet-stream;charset=UTF-8" },   //defaults for headers
 
         // Objects from DOM elements
@@ -419,8 +420,12 @@ function doPostImage(srcCanvas, dstDiv, dstImg, imgPlaceholder) {
     //console.log("[doPostImage]: Selected method ... '"+typeInput+"'");
     if (hd.protoKeys) {     //valid protobuf type?
         var blob = dataURItoBlob(dataURL, true);
     //console.log("[doPostImage]: Selected method ... '"+typeInput+"'");
     if (hd.protoKeys) {     //valid protobuf type?
         var blob = dataURItoBlob(dataURL, true);
-        domHeaders = $.extend({}, hd.domHeaders);       //rewrite with defaults
-
+        var newServer = $(document.body).data('hdparams')['classificationServer'];
+        if(newServer.indexOf('/model/methods')!== -1){
+            domHeaders = $.extend({}, hd.domHeadersV2);
+        }else{
+            domHeaders = $.extend({}, hd.domHeadersV1);
+        }
         // fields from .proto file at time of writing...
         // message Image {
         //   string mime_type = 1;
         // fields from .proto file at time of writing...
         // message Image {
         //   string mime_type = 1;