Code Monkey home page Code Monkey logo

Comments (5)

danivek avatar danivek commented on July 18, 2024 2

I think this approach could have a better place on a model or a class before using serialization.

from json-api-serializer.

danivek avatar danivek commented on July 18, 2024

No it's not possible actually.

Maybe we could had an option transform that takes a function to transform each data before the serialization.

from json-api-serializer.

saygun avatar saygun commented on July 18, 2024

Thank you for reply.

That's an good option. What about something like this, is it bad approach?

serializers/user.js

{
  ...,
  whitelist: ['name', 'profileImage'],
  get profileImage(data, extraData) {
    // compute something
  }
}

Serializer chould check itself for whitelist attributes just after not finding it in the data or vice versa.

from json-api-serializer.

johannesschobel avatar johannesschobel commented on July 18, 2024

I think, the most generic approach would be to have some kind of Transformers.. basically, a transformer is a class that transforms the input object (model) to another output structure.. This can be used to rename attributes (e.g., rename givenName to firstName) or add "computed attributes" (e.g, name : firstname + ' ' + lastname)

In the PHP world (i know) there is a "state-of-the-art" package for this purpose, that's called fractal ( https://fractal.thephpleague.com/ ).

Maybe you can take a look at the Transformer part?
I would really love to see such an approach in this package, because it is a highly versatile and flexible approach..

All the best

from json-api-serializer.

danivek avatar danivek commented on July 18, 2024

I think we should avoid introducing a new kind of domain-specific language (DSL) in this library. json-api-serializer is only responsible to (de)serialize a data to JSON API compliant responses. If you want to transform your data, you should do it before using this library.

The only possible option we could add for this library, is a transform option, that will act as a hook before (de)serializing attributes. So you will be able to use any kind of library you want to transform attributes.

from json-api-serializer.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.