How to use the PostgresSql REST API


#1

I create a service select databse postgreSQL. And creata table ,insert data in the database.
It’s the sql:

create table if not exists name_age (  
    info jsonb
)

insert into name_age values('{"id":1,"name":"Ben", "age":18}');  
insert into name_age values('{"id":1,"name":"Jon", "age":20}'); 

How to filter "age":20 by REST API .
Hope that the result is to execute the following sql:

select info from name_age where info @> '{"age":20}'::jsonb

REST API :http://127.0.0.1:8099/api/v2/postgretest/_table/name_age


#2

Hi @wang4978,

To add a filter, it would be added at the end of the url structure following a ?. So your url structure would look like (https://cl.ly/ea9db4ddbf4d) where I am filtering by department number.

Best,
Kevin McGahey


#3

Thanks,Kevin,

I add a filter at the end of the url:

http://127.0.0.1:8099/api/v2/postgretest/_table/test1?filter=(info%20@>'{"age":"20"}')

Postman show the result :

{
    "error": {
        "code": 400,
        "context": null,
        "message": "Invalid or unparsable field in filter request: 'info @'",
        "status_code": 400
    }
}

#4

Could you try ?filter=age=20 for me please I believe that is the correct way for what you are trying to do.


#5

Thanks , Kevin,
I tried this way:

http://127.0.0.1:8099/api/v2/postgretest/_table/name_age?filter=age=20

And get the result:
{ "error": { "code": 400, "context": null, "message": "Invalid or unparsable field in filter request: 'age'", "status_code": 400 } }


#6

Hi @wang4978,

Could you please try
http://127.0.0.1:8099/api/v2/postgretest/_table/name_age?filter=(age=20)