[Pharo-users] Multiple NeoJSON mappings for the same domain object

Norbert Hartl norbert at hartl.name
Wed Feb 13 02:49:52 EST 2019


Forgot to add the links

https://github.com/zweidenker/JSONSchema

https://github.com/zweidenker/OpenAPI

Norbert

> Am 13.02.2019 um 08:44 schrieb Norbert Hartl <norbert at hartl.name>:
> 
> If you are not in a hurry you can use JSON schema. That is also an external mapper which can validate. And the spec is serializable. You might miss some functionality but I could try to add that if you don‘t do. I would be happy to have more users of the library.
> 
> If you use it for REST you could also use OpenAPI which I did. It uses the JSON schema stuff for doing it.
> 
> Norbert
> 
>> Am 13.02.2019 um 02:58 schrieb Esteban Maringolo <emaringolo at gmail.com>:
>> 
>> Meanwhile I found another approach to solve this in the context of a
>> JSON/REST API.
>> 
>> E.g. see #addRuleToEncode:to:using: in.
>> https://github.com/ba-st/Stargate/blob/release-candidate/source/Stargate-Examples/PetsRESTfulControllerSpecification.class.st
>> 
>> Has a separate mapper for encoding and decoding, depending on the endpoint:
>> 
>> Regards,
>> 
>> Esteban A. Maringolo
>> 
>> El mar., 12 feb. 2019 a las 19:34, Esteban Maringolo
>> (<emaringolo at gmail.com>) escribió:
>>> 
>>> Hi all, Sven, :)
>>> 
>>> I'm working on a domain model that will have different JSON
>>> representations for the same domain objects, so depending on the
>>> context it will return one representation or another.
>>> 
>>> In the past to solve the multiple representations, what I did was to
>>> build "helper" methods that added the mappings to the mapper.
>>> 
>>> So the process was like:
>>> 1. instantiate the mapper
>>> 2. call a #neoJsonSimple: mapper
>>> 3. configure the mapper by calling other mapping defining methods
>>> 4. convert the object to a JSON string.
>>> 
>>> If I wanted an "extended" representation, in the step 2 I would call
>>> #neoJsonExtended: instead.
>>> 
>>> But I find this "too manual" to scale.
>>> 
>>> So... is there a better, ¿canonical?, way to achieve this?
>>> 
>>> 
>>> Thanks!
>>> 
>>> 
>>> ps: By now it will be only object -> JSON (so NeoJSONWriter), but in
>>> the future I might need to instantiate objects back from JSON, so the
>>> mappings should be for both mappers.
>>> 
>>> Esteban A. Maringolo
>> 
> 
> 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pharo.org/pipermail/pharo-users_lists.pharo.org/attachments/20190213/4aaf42bf/attachment-0001.html>


More information about the Pharo-users mailing list