Query parameters#
Most get
functions support filtering by query parameters.
Query by property values#
You can query resources by the value of their properties:
project = jms_api.get_project_by_name(name="Mapdl Motorbike Frame")
project_api = ProjectApi(client, project.id)
# Get all jobs
jobs = project_api.get_jobs()
# Get all evaluated jobs
jobs = project_api.get_jobs(eval_status="evaluated")
In general, query parameters support these operators:
lt
: Less thanle
: Less than or equal to=
: Equal tone
: Not equal toge
: Greater than or equal togt
: Greater thanin
: Value found in listcontains
: Property contains the given string
# Equal
jobs = project_api.get_jobs(eval_status="evaluated")
# In
jobs = project_api.get_jobs(eval_status=["prolog", "running"])
# Contains
query_params = {"note.contains": "search_string"}
jobs = project_api.get_jobs(**query_params)
# Less than
query_params = {"fitness.lt": 1.8}
jobs = project_api.get_jobs(**query_params)
Query by fields#
When you query a resource, the REST API returns a set of fields by default. You can specify which fields
you want returned by using the fields
query parameter. (The query returns all specified fields in
addition to the ID of the resource, which is always returned.) To request that all fields be returned,
use fields="all"
.
# Get ID and parameter values for all evaluated jobs
jobs = project_api.get_jobs(fields=["id", "values"], eval_status="evaluated")
# Get all jobs with all fields
jobs = project_api.get_jobs(fields="all")
Sorting by property values#
You can sort resource collections by the values of their properties.
Prefixing with -
(minus) denotes descending order.
# Get all jobs sorted by fitness value in ascending order
jobs = project_api.get_jobs(sort="fitness")
# Get all jobs sorted by fitness value in descending order
jobs = project_api.get_jobs(sort="-fitness")
# Get all jobs sorted by 'tube1' and 'weight' parameters
jobs = project_api.get_jobs(sort=["values.tube1", "values.weight"])
print([(job.values["tube1"], job.values["weight"]) for job in jobs])
Paginating items in a collection#
You can use the offset
and limit
query parameters to paginate items in a collection.
# Get the name and elapsed time of a maximum of 5 evaluated jobs, sorted by creation time
jobs = project_api.get_jobs(fields=["name", "elapsed_time"], sort="-creation_time",
eval_status="evaluated", limit=5)
# Query the next 10 jobs
jobs = project_api.get_jobs(fields=["name", "elapsed_time"], sort="-creation_time",
eval_status="evaluated", limit=10, offset=5)