Details

    • Story Points:
      3

      Description

      Due to demand from the UI team, JSON WebService Invoker syntax will be enhanced to support manipulation of inner properties. The following requirements have to be implemented:

      add variable to inner object

      {"$p = /foo/get-foo-page" : {
          "$XXX1 = /foo/hello-world" : {
              "@userId" : "$p.page",
              "worldName" : "galaxy"
          },
          "data.$XXX2 = /foo/hello-world" : {
              "@userId" : "$p.page",
              "worldName" : "star"}
          }
      }}
      

      In this snippet we added variable XXX1 to the root variable p - this feature already existed. The new functionality is that now we can also add a variable to an inner property: data.XXX2, in the very same way how it is added to the root.

      This snippet should work with and without variable XXX1. Also, JSONWS Invoker should respect the @JSON serialization hints of the inner object (here: 'data').

      add variable to inner list, with constant value

      {"$p = /foo/get-foo-page" : {
          "$XXX1 = /foo/hello-world" : {
              "@userId" : "$p.page",
              "worldName" : "galaxy"
          },
          "data.$XXX2 = /foo/hello-world" : {
              "@userId" : "$p.page",
              "worldName" : "star"
          },
          "list.$XXX3 = /foo/hello-world" : {
              "@userId" : "$p.page",
              "worldName" : "pulsar"
          }
      }}
      

      Variable XXX3 is added to the each element of the inner list. Assigned value is however a constant and equal for each element of the list.

      add variable to inner list, referencing list element value

      {"$p = /foo/get-foo-page" : {
          "$XXX1 = /foo/hello-world" : {
              "@userId" : "$p.page",
              "worldName" : "galaxy"
          },
          "data.$XXX2 = /foo/hello-world" : {
              "@userId" : "$p.page",
              "worldName" : "star"
          },
          "list.$XXX3 = /foo/hello-world" : {
              "@userId" : "$p.list.id",
              "worldName" : "pulsar"
          }
      }}
      

      Everything is the same as above, except the value for userId - this time we populate it with id value of current list element.

        Attachments

          Issue Links

            Activity

              People

              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: