Uploaded image for project: 'Magnolia REST Framework'
  1. Magnolia REST Framework
  2. MGNLREST-181

Stripping language suffixes from properties in requests with the lang param might lead to problems

XMLWordPrintable

    • Icon: Improvement Improvement
    • Resolution: Obsolete
    • Icon: Neutral Neutral
    • None
    • 2.1
    • None
    • None
    • 8

      In v2 delivery endpoint we strip language suffixes from property names if one passes the lang param in the request and its value is anything but all.

      This however leads to absurd i18n situations which may lead to further i18n problems if one decides to work with the content of the response (JSON or XML).

      I think that the property name should be shown in the REST API response in exactly the same form as in what is actually in the JCR repo.


      Consider the following scenario (tested with a 5.6.4-snap CE bundle):

      1) Define a simple endpoint called ep for the tours module:

      class: info.magnolia.rest.delivery.jcr.v2.JcrDeliveryEndpointDefinition
      workspace: tours
      includeSystemProperties: false

      2) Find a tour whose description is Get photobombed by a Sea Turtle and request only the content variant in the German language:

      http://localhost:8080/magnoliaAuthor/.rest/ep/?description=Get%20photobombed%20by%20a%20Sea%20Turtle&lang=de-DE
      
      {
        "results": [
          {
            "@name": "Scuba-Diving-in-Bahamas--famed-Tiger-Beach",
            "@path": "/magnolia-travels/Scuba-Diving-in-Bahamas--famed-Tiger-Beach",
            "@id": "82cc787a-0bf1-4561-859f-adea4c12ab2f",
            "@nodeType": "mgnl:content",
            "isFeatured": "true",
            "name": "Tauchen am Tiger Beach",
            "description": "Lassen Sie sich von einer Meeresschildkröte überraschen, die plötzlich auf Ihrem Foto erscheint",
            "location": "Miami, USA",
            "tourTypes": [
              "d2245867-ecaa-4b4e-8743-e0c939be68b7",
              "eaf9a648-fae1-48ae-a293-69bed874f159"
            ],
            "author": "Magnolia Travels",
            "body": "<p>Unsere beliebteste aktive Tour f&uuml;hrt zum weltber&uuml;hmten Tiger Beach in den Gew&auml;ssern vor den Bahamas. Dieser spektakul&auml;re Ort ist einmalig in der Welt. Magnolia Travels garantiert Ihnen eine der einzigstartigen Unterwasser-Erfahrungen &uuml;berhaupt. Umgeben vom kristallblauen Wasser der Bahamas und perlwei&szlig;em Sand k&ouml;nnen Sie Ammenhaie, Riffhaie, Zitronenhaie und Tigerhaie beobachten. Bringen Sie Ihre Kamera mit, es gibt auf dieser Reise keinen Mangel an gro&szlig;artigen Foto- oder Videogelegenheiten. &nbsp;</p>\n<p>Auf dieser Expedition haben Sie Gelegenheit, mit unseren entz&uuml;ckenden und ber&uuml;hmten Tigerhai-&bdquo;Supermodels&ldquo; von Angesicht zu Angesicht zu tauchen:&nbsp; Emma, Baby Cakes, Tanya, Begonia und Mini-T. Unsere &bdquo;Supermodel&ldquo; werden Ihnen dabei helfen, einige der weltweit besten Hai-Fotos zu schie&szlig;en. Sie lieben es, f&uuml;r die Kamera zu l&auml;cheln!</p>\n<p>Nat&uuml;rlich w&auml;re keine Reise auf die Bahamas vollst&auml;ndig ohne Tauchen in den umwerfenden und vielfarbigen Riffen. Sie sind von einer F&uuml;lle kleiner und gro&szlig;er Meereslebewesen umgeben;&nbsp; Sch&ouml;nheit und Wunder dieses vibriendenden &Ouml;kosystems lassen Sie verstummen. Karibische Riffhaie, gro&szlig;e Zackenbarsche, Mur&auml;nenaale und viele andere Fische wetteifern um Ihre Aufmerksamkeit, w&auml;hrend Sie &uuml;ber vielf&auml;ltige Korallenarten, wellenf&ouml;rmige Seef&auml;cher und eine bunte Anordnung von Schw&auml;mmen gleiten. Beginnen Sie noch heute, mit uns Ihre Erinnerungen zu gestalten!</p> ",
            "destination": [
              "ed3dcd18-78af-46df-a9e1-bc732479f2e7"
            ],
            "duration": "14",
            "image": "jcr:795449d2-6c16-402e-9e8a-bbb101fe22bb",
            "@nodes": []
          }
        ]
      }
      

      Now let's work with the result returned further. The result says that the description property for tour with id 82cc787a-0bf1-4561-859f-adea4c12ab2f  is

      Lassen Sie sich von einer Meeresschildkröte überraschen, die plötzlich auf Ihrem Foto erscheint
      

      3) Find a tour whose description is then Lassen Sie sich von einer Meeresschildkröte überraschen, die plötzlich auf Ihrem Foto erscheint. The request above clearly shows there is one like that and it should have the id 82cc787a-0bf1-4561-859f-adea4c12ab2f:

      http://localhost:8080/magnoliaAuthor/.rest/ep/?description=Lassen%20Sie%20sich%20von%20einer%20Meeresschildkr%C3%B6te%20%C3%BCberraschen%2C%20die%20pl%C3%B6tzlich%20auf%20Ihrem%20Foto%20erscheint
      

      However what we get is:

      {
        "results": []
      }
      

        Acceptance criteria

              Unassigned Unassigned
              mdrapela Martin Drápela
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

                Created:
                Updated:
                Resolved:

                  Task DoD