Skip to content

Enumerate model properties in Filter/Where schema #1748

Closed

Description

@bajtos

The pull request #1679 is adding getFilterJsonSchemaFor API for obtaining a JSON/OpenAPI schema of a filter argument. The initial implementation is generic and does not describe the actual model properties in the schema. Let's fix that!

  • LB4 models are strict by default (extra properties are not allowed).
  • It's possible to create a LB4 model that allows additional properties, Filter schema needs to detect and support this case.
  • Besides model properties, where object can contain operators like and, or, inq. See their full list in our docs: Where filter: Operators.
  • Besides where condition, model properties are used by fields property too.

Activity

  1. added
    RESTIssues related to @loopback/rest package and REST transport in general
    on Sep 24, 2018
  2. ghsamm commented on Jan 12, 2019

    @ghsamm
    Contributor

    Hello @bajtos, I'm working on this as my first open-source commit.

    Here is how I made it work for fields:

    fields: {
        type: 'object',
        properties: Object.assign(
            {},
            ...Object.keys(modelCtor.definition.properties).map(k => ({
                [k]: {type: 'boolean'},
            })),
        ),
        additionalProperties: true,
    }
    

    I can follow the same principle for other properties if you think I'm going in the right direction.

    Here is my pull request: #2241

    I am very excited to start contributing to such a great project. Please tell me if there is something I can improve to get my PRs accepted.

  3. bajtos commented on Feb 8, 2019

    @bajtos
    MemberAuthor

    Closing as done via #2241

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    OpenAPIRESTIssues related to @loopback/rest package and REST transport in generalfeaturegood first issue

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions