- Download the last release.
- Import it to the target Caché namespace, f.e. to
SAMPLES
. - Create new web aplication:
- Name -
/
- Namespace - your target namespace, f.e.
SAMPLES
- Dispatch Class -
GraphQL.REST.Main
- Name -
- Use an available release or build it on your own
- Create new web aplication:
- Name -
/graphiql
- Namespace - your target namespace, f.e.
SAMPLES
- CSP Files Physical Path - f.e.
C:\InterSystems\GraphiQL\
- Name -
If the current ZPM instance is not installed, then in one line you can install the latest version of ZPM even with a proxy.
s r=##class(%Net.HttpRequest).%New(),proxy=$System.Util.GetEnviron("https_proxy") Do ##class(%Net.URLParser).Parse(proxy,.pr) s:$G(pr("host"))'="" r.ProxyHTTPS=1,r.ProxyTunnel=1,r.ProxyPort=pr("port"),r.ProxyServer=pr("host") s:$G(pr("username"))'=""&&($G(pr("password"))'="") r.ProxyAuthorization="Basic "_$system.Encryption.Base64Encode(pr("username")_":"_pr("password")) set r.Server="pm.community.intersystems.com",r.SSLConfiguration="ISC.FeatureTracker.SSL.Config" d r.Get("/packages/zpm/latest/installer"),$system.OBJ.LoadStream(r.HttpResponse.Data,"c")
If ZPM is installed, then ZAPM can be set with the command
zpm:USER>install isc-graphql
Make sure you have git and Docker desktop installed.
Clone/git pull the repo into any local directory
$ git clone https://github.com/intersystems-community/GraphQL.git
Open the terminal in this directory and run:
$ docker-compose build
- Run the IRIS container with your project:
$ docker-compose up -d
Query and Result
Queries can be simple and complex for several sets of data
{
Sample_Person{
Name
DOB
FavoriteColors
Office {
City
State
Street
Zip
}
}
Sample_Company{
Mission
Name
Revenue
}
}
Filtering
At the moment, only strict equality is supported:
{
Sample_Person(id: 116){
id
Name
DOB
FavoriteColors
Home {
City
State
Street
Zip
}
Office {
City
State
Street
Zip
}
}
}
Pagination
Pagination is supported through 4 functions that can be combined to achieve the necessary result:
- after: n – all records with id greater than n
- before: n – all records with id smaller than n
- first: n – first n records
- last: n – last n records
{
Sample_Employee(after: 120, before: 123){
id
Name
}
Sample_Person(first: 2){
id
Home {
City
State
Street
Zip
}
}
Sample_Company(last: 3){
id
Name
}
}