vscode-apollo 2.5.6 → 2.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.circleci/config.yml +17 -0
- package/.github/workflows/E2E.yml +3 -2
- package/.github/workflows/build-prs.yml +2 -1
- package/.github/workflows/release.yml +2 -2
- package/.prettierignore +3 -0
- package/.semgrepignore +2 -0
- package/.vscode/settings.json +7 -2
- package/CHANGELOG.md +12 -0
- package/apollo.connectors.mapping.configuration.json +10 -0
- package/package.json +38 -4
- package/sampleWorkspace/connectors-community/.github/ISSUE_TEMPLATE/connector-bug-report.md +36 -0
- package/sampleWorkspace/connectors-community/.github/ISSUE_TEMPLATE/new-connector.md +10 -0
- package/sampleWorkspace/connectors-community/.github/renovate.json5 +3 -0
- package/sampleWorkspace/connectors-community/.vscode/extensions.json +3 -0
- package/sampleWorkspace/connectors-community/.vscode/settings.json +13 -0
- package/sampleWorkspace/connectors-community/.vscode/tasks.json +10 -0
- package/sampleWorkspace/connectors-community/README.md +108 -0
- package/sampleWorkspace/connectors-community/apollo.config.json +5 -0
- package/sampleWorkspace/connectors-community/connectors/.template/Dockerfile +5 -0
- package/sampleWorkspace/connectors-community/connectors/.template/README +46 -0
- package/sampleWorkspace/connectors-community/connectors/.template/connector.graphql +31 -0
- package/sampleWorkspace/connectors-community/connectors/.template/router.yaml +18 -0
- package/sampleWorkspace/connectors-community/connectors/.template/supergraph.yaml +6 -0
- package/sampleWorkspace/connectors-community/connectors/JSONPlaceholder/README +12 -0
- package/sampleWorkspace/connectors-community/connectors/JSONPlaceholder/albums.graphql +48 -0
- package/sampleWorkspace/connectors-community/connectors/JSONPlaceholder/comments.graphql +54 -0
- package/sampleWorkspace/connectors-community/connectors/JSONPlaceholder/photos.graphql +54 -0
- package/sampleWorkspace/connectors-community/connectors/JSONPlaceholder/posts.graphql +51 -0
- package/sampleWorkspace/connectors-community/connectors/JSONPlaceholder/supergraph.yaml +26 -0
- package/sampleWorkspace/connectors-community/connectors/JSONPlaceholder/todos.graphql +51 -0
- package/sampleWorkspace/connectors-community/connectors/JSONPlaceholder/users.graphql +80 -0
- package/sampleWorkspace/connectors-community/connectors/TM-Forum/README.md +9 -0
- package/sampleWorkspace/connectors-community/connectors/TM-Forum/router.yaml +18 -0
- package/sampleWorkspace/connectors-community/connectors/TM-Forum/supergraph.yaml +6 -0
- package/sampleWorkspace/connectors-community/connectors/TM-Forum/tmf622-ProductOrdering.graphql +296 -0
- package/sampleWorkspace/connectors-community/connectors/adobe-commerce-cloud/README.md +7 -0
- package/sampleWorkspace/connectors-community/connectors/adobe-commerce-cloud/addresses.graphql +30 -0
- package/sampleWorkspace/connectors-community/connectors/adobe-commerce-cloud/customer.graphql +77 -0
- package/sampleWorkspace/connectors-community/connectors/adobe-commerce-cloud/products.graphql +70 -0
- package/sampleWorkspace/connectors-community/connectors/adobe-commerce-cloud/router.yaml +24 -0
- package/sampleWorkspace/connectors-community/connectors/adobe-commerce-cloud/supergraph.yaml +14 -0
- package/sampleWorkspace/connectors-community/connectors/adobe-commerce-cloud/swagger.json +69226 -0
- package/sampleWorkspace/connectors-community/connectors/anthropic/Dockerfile +5 -0
- package/sampleWorkspace/connectors-community/connectors/anthropic/README +61 -0
- package/sampleWorkspace/connectors-community/connectors/anthropic/messages.graphql +258 -0
- package/sampleWorkspace/connectors-community/connectors/anthropic/router.yaml +18 -0
- package/sampleWorkspace/connectors-community/connectors/anthropic/supergraph.yaml +6 -0
- package/sampleWorkspace/connectors-community/connectors/apollo-ecomm-simple/README +3 -0
- package/sampleWorkspace/connectors-community/connectors/apollo-ecomm-simple/connector.graphql +38 -0
- package/sampleWorkspace/connectors-community/connectors/apollo-ecomm-simple/router.yaml +18 -0
- package/sampleWorkspace/connectors-community/connectors/apollo-ecomm-simple/supergraph.yaml +6 -0
- package/sampleWorkspace/connectors-community/connectors/apple/README +36 -0
- package/sampleWorkspace/connectors-community/connectors/apple/app-store-connect.graphql +100 -0
- package/sampleWorkspace/connectors-community/connectors/apple/router.yaml +18 -0
- package/sampleWorkspace/connectors-community/connectors/apple/supergraph.yaml +6 -0
- package/sampleWorkspace/connectors-community/connectors/aws/README +125 -0
- package/sampleWorkspace/connectors-community/connectors/aws/dynamodb.graphql +130 -0
- package/sampleWorkspace/connectors-community/connectors/aws/json-responses/product-price.json +10 -0
- package/sampleWorkspace/connectors-community/connectors/aws/json-responses/products.json +53 -0
- package/sampleWorkspace/connectors-community/connectors/aws/lambda.graphql +179 -0
- package/sampleWorkspace/connectors-community/connectors/aws/router.yaml +54 -0
- package/sampleWorkspace/connectors-community/connectors/aws/supergraph.yaml +10 -0
- package/sampleWorkspace/connectors-community/connectors/bored/README.md +35 -0
- package/sampleWorkspace/connectors-community/connectors/bored/bored.graphql +87 -0
- package/sampleWorkspace/connectors-community/connectors/bored/supergraph.yaml +6 -0
- package/sampleWorkspace/connectors-community/connectors/common-room/README.md +23 -0
- package/sampleWorkspace/connectors-community/connectors/common-room/contacts.graphql +141 -0
- package/sampleWorkspace/connectors-community/connectors/common-room/json-responses/members_email_.json +61 -0
- package/sampleWorkspace/connectors-community/connectors/common-room/router.yaml +18 -0
- package/sampleWorkspace/connectors-community/connectors/common-room/supergraph.yaml +6 -0
- package/sampleWorkspace/connectors-community/connectors/googlemaps/README.md +58 -0
- package/sampleWorkspace/connectors-community/connectors/googlemaps/distancematrix.graphql +155 -0
- package/sampleWorkspace/connectors-community/connectors/googlemaps/places-legacy.graphql +117 -0
- package/sampleWorkspace/connectors-community/connectors/googlemaps/places.graphql +399 -0
- package/sampleWorkspace/connectors-community/connectors/googlemaps/router.yaml +18 -0
- package/sampleWorkspace/connectors-community/connectors/googlemaps/supergraph.yaml +18 -0
- package/sampleWorkspace/connectors-community/connectors/googlemaps/timezone.graphql +64 -0
- package/sampleWorkspace/connectors-community/connectors/heygen/README +105 -0
- package/sampleWorkspace/connectors-community/connectors/heygen/avatars.graphql +79 -0
- package/sampleWorkspace/connectors-community/connectors/heygen/photo-avatars.graphql +454 -0
- package/sampleWorkspace/connectors-community/connectors/heygen/router.yaml +21 -0
- package/sampleWorkspace/connectors-community/connectors/heygen/supergraph.yaml +10 -0
- package/sampleWorkspace/connectors-community/connectors/jira/README +36 -0
- package/sampleWorkspace/connectors-community/connectors/jira/connector.graphql +197 -0
- package/sampleWorkspace/connectors-community/connectors/jira/router.yaml +18 -0
- package/sampleWorkspace/connectors-community/connectors/jira/supergraph.yaml +6 -0
- package/sampleWorkspace/connectors-community/connectors/museums/README.md +40 -0
- package/sampleWorkspace/connectors-community/connectors/museums/chicagoArt.graphql +150 -0
- package/sampleWorkspace/connectors-community/connectors/museums/met.graphql +119 -0
- package/sampleWorkspace/connectors-community/connectors/museums/supergraph.yaml +10 -0
- package/sampleWorkspace/connectors-community/connectors/nws/README.md +45 -0
- package/sampleWorkspace/connectors-community/connectors/nws/alerts.graphql +598 -0
- package/sampleWorkspace/connectors-community/connectors/nws/supergraph.yaml +6 -0
- package/sampleWorkspace/connectors-community/connectors/odata/README +18 -0
- package/sampleWorkspace/connectors-community/connectors/odata/connector.graphql +171 -0
- package/sampleWorkspace/connectors-community/connectors/odata/router.yaml +18 -0
- package/sampleWorkspace/connectors-community/connectors/odata/supergraph.yaml +6 -0
- package/sampleWorkspace/connectors-community/connectors/openai/README.md +61 -0
- package/sampleWorkspace/connectors-community/connectors/openai/assistants.graphql +285 -0
- package/sampleWorkspace/connectors-community/connectors/openai/chat-completions.graphql +169 -0
- package/sampleWorkspace/connectors-community/connectors/openai/models.graphql +47 -0
- package/sampleWorkspace/connectors-community/connectors/openai/router.yaml +24 -0
- package/sampleWorkspace/connectors-community/connectors/openai/supergraph.yaml +14 -0
- package/sampleWorkspace/connectors-community/connectors/pokeapi/README +45 -0
- package/sampleWorkspace/connectors-community/connectors/pokeapi/games.graphql +70 -0
- package/sampleWorkspace/connectors-community/connectors/pokeapi/locations.graphql +127 -0
- package/sampleWorkspace/connectors-community/connectors/pokeapi/moves.graphql +107 -0
- package/sampleWorkspace/connectors-community/connectors/pokeapi/pokemon.graphql +539 -0
- package/sampleWorkspace/connectors-community/connectors/pokeapi/router.yaml +18 -0
- package/sampleWorkspace/connectors-community/connectors/pokeapi/supergraph.yaml +18 -0
- package/sampleWorkspace/connectors-community/connectors/strapi/README.md +75 -0
- package/sampleWorkspace/connectors-community/connectors/strapi/router.yaml +19 -0
- package/sampleWorkspace/connectors-community/connectors/strapi/supergraph.yaml +6 -0
- package/sampleWorkspace/connectors-community/connectors/strapi/users.graphql +227 -0
- package/sampleWorkspace/connectors-community/connectors/stripe/README.md +83 -0
- package/sampleWorkspace/connectors-community/connectors/stripe/checkout.graphql +112 -0
- package/sampleWorkspace/connectors-community/connectors/stripe/core-resources.graphql +868 -0
- package/sampleWorkspace/connectors-community/connectors/stripe/payment-methods.graphql +526 -0
- package/sampleWorkspace/connectors-community/connectors/stripe/products.graphql +162 -0
- package/sampleWorkspace/connectors-community/connectors/stripe/router.yaml +26 -0
- package/sampleWorkspace/connectors-community/connectors/stripe/supergraph.yaml +18 -0
- package/sampleWorkspace/connectors-community/connectors/supabase/README.md +80 -0
- package/sampleWorkspace/connectors-community/connectors/supabase/router.yaml +5 -0
- package/sampleWorkspace/connectors-community/connectors/supabase/supabase.graphql +143 -0
- package/sampleWorkspace/connectors-community/connectors/supabase/supergraph.yaml +6 -0
- package/sampleWorkspace/connectors-community/connectors/thespacedevs/README +46 -0
- package/sampleWorkspace/connectors-community/connectors/thespacedevs/agencies.graphql +193 -0
- package/sampleWorkspace/connectors-community/connectors/thespacedevs/api-throttle.graphql +33 -0
- package/sampleWorkspace/connectors-community/connectors/thespacedevs/astronauts.graphql +237 -0
- package/sampleWorkspace/connectors-community/connectors/thespacedevs/celestial-bodies.graphql +131 -0
- package/sampleWorkspace/connectors-community/connectors/thespacedevs/docking-events.graphql +3460 -0
- package/sampleWorkspace/connectors-community/connectors/thespacedevs/launches.graphql +1156 -0
- package/sampleWorkspace/connectors-community/connectors/thespacedevs/supergraph.yaml +77 -0
- package/sampleWorkspace/connectors-community/connectors/tint/README +35 -0
- package/sampleWorkspace/connectors-community/connectors/tint/accounts.graphql +69 -0
- package/sampleWorkspace/connectors-community/connectors/tint/router.yaml +21 -0
- package/sampleWorkspace/connectors-community/connectors/tint/social-feeds.graphql +62 -0
- package/sampleWorkspace/connectors-community/connectors/tint/supergraph.yaml +10 -0
- package/sampleWorkspace/connectors-community/connectors/todoist/README.md +48 -0
- package/sampleWorkspace/connectors-community/connectors/todoist/supergraph.yaml +6 -0
- package/sampleWorkspace/connectors-community/connectors/todoist/todoist.graphql +381 -0
- package/sampleWorkspace/connectors-community/connectors/trimblemaps/README +99 -0
- package/sampleWorkspace/connectors-community/connectors/trimblemaps/connector.graphql +66 -0
- package/sampleWorkspace/connectors-community/connectors/trimblemaps/router.yaml +18 -0
- package/sampleWorkspace/connectors-community/connectors/trimblemaps/supergraph.yaml +6 -0
- package/sampleWorkspace/connectors-community/connectors/twilio/README.md +44 -0
- package/sampleWorkspace/connectors-community/connectors/twilio/messages.graphql +107 -0
- package/sampleWorkspace/connectors-community/connectors/twilio/router.yaml +6 -0
- package/sampleWorkspace/connectors-community/connectors/twilio/supergraph.yaml +6 -0
- package/sampleWorkspace/connectors-community/connectors/usgs/earthquakes/README.md +44 -0
- package/sampleWorkspace/connectors-community/connectors/usgs/earthquakes/earthquakes.graphql +235 -0
- package/sampleWorkspace/connectors-community/connectors/usgs/earthquakes/supergraph.yaml +6 -0
- package/sampleWorkspace/connectors-community/connectors/usgs/earthquakes-nominatum/README.md +44 -0
- package/sampleWorkspace/connectors-community/connectors/usgs/earthquakes-nominatum/earthquake-simple.graphql +87 -0
- package/sampleWorkspace/connectors-community/connectors/usgs/earthquakes-nominatum/router.yaml +3 -0
- package/sampleWorkspace/connectors-community/connectors/usgs/earthquakes-nominatum/supergraph.yaml +6 -0
- package/sampleWorkspace/connectors-community/connectors/usps/README +36 -0
- package/sampleWorkspace/connectors-community/connectors/usps/router.yaml +18 -0
- package/sampleWorkspace/connectors-community/connectors/usps/supergraph.yaml +6 -0
- package/sampleWorkspace/connectors-community/connectors/usps/tracking.graphql +118 -0
- package/sampleWorkspace/connectors-community/connectors/zendesk/README +36 -0
- package/sampleWorkspace/connectors-community/connectors/zendesk/connector.graphql +98 -0
- package/sampleWorkspace/connectors-community/connectors/zendesk/router.yaml +18 -0
- package/sampleWorkspace/connectors-community/connectors/zendesk/supergraph.yaml +6 -0
- package/sampleWorkspace/connectors-community/file-new/index.js +520 -0
- package/sampleWorkspace/connectors-community/package-lock.json +119 -0
- package/sampleWorkspace/connectors-community/package.json +20 -0
- package/sampleWorkspace/connectors-community/supergraph.yaml +6 -0
- package/sampleWorkspace/sampleWorkspace.code-workspace +29 -8
- package/src/__tests__/fixtures/textmate/test.apollo.connectors.mapping +213 -0
- package/src/__tests__/fixtures/textmate/test.connect.graphql +104 -0
- package/src/language-server/__tests__/fixtures/documents/functionCall.ts.snap +3 -3
- package/syntaxes/build.ts +266 -0
- package/syntaxes/connectors.mapping.json +532 -0
- package/syntaxes/connectors.mapping.yaml +440 -0
- package/syntaxes/graphql.connectors.json +426 -0
- package/syntaxes/graphql.connectors.yaml +254 -0
- package/syntaxes/graphql.json +8 -1
- package/syntaxes/publish.sh +43 -0
- package/syntaxes/tsconfig.json +6 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
supergraph:
|
|
2
|
+
listen: 0.0.0.0:${env.PORT:-4000}
|
|
3
|
+
|
|
4
|
+
headers:
|
|
5
|
+
all:
|
|
6
|
+
request:
|
|
7
|
+
- propagate:
|
|
8
|
+
matching: .*
|
|
9
|
+
telemetry:
|
|
10
|
+
instrumentation:
|
|
11
|
+
spans:
|
|
12
|
+
mode: spec_compliant
|
|
13
|
+
|
|
14
|
+
connectors:
|
|
15
|
+
subgraphs:
|
|
16
|
+
connector:
|
|
17
|
+
$config:
|
|
18
|
+
apiKey: ${env.API_KEY}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Public Art Museum REST Connector
|
|
2
|
+
|
|
3
|
+
This connector currently contains subgraphs schemas for:
|
|
4
|
+
|
|
5
|
+
[The Art Institute of Chicago API](https://api.artic.edu/docs/#introduction)
|
|
6
|
+
[The Metropolitan Museum of Art](https://metmuseum.github.io/?ref=public_apis&utm_medium=website)
|
|
7
|
+
|
|
8
|
+
These Apis are public and free to use, see the respective documentaiton for more information about usage and limitations.
|
|
9
|
+
|
|
10
|
+
These subgraph files are complimentary but do not depend on each other, they can be used independently.
|
|
11
|
+
|
|
12
|
+
## Additional Setup for VS Code Task runner
|
|
13
|
+
|
|
14
|
+
Edit your `.vscode/settings.json` to include the following keys:
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
{
|
|
18
|
+
"terminal.integrated.profiles.osx": {
|
|
19
|
+
"graphos": {
|
|
20
|
+
"path": "zsh",
|
|
21
|
+
"args": ["-l"],
|
|
22
|
+
"env": {
|
|
23
|
+
"APOLLO_KEY": "",
|
|
24
|
+
...
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"terminal.integrated.defaultProfile.osx": "graphos"
|
|
29
|
+
}
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Once you've set this up, you can execute the `Tasks: Run Task` command in VS Code to run the `rover dev` task.
|
|
33
|
+
Alternatively, you can open a new terminal window in VS Code with the `graphos` profile, then run `rover dev --supergraph-config supergraph.yaml`.
|
|
34
|
+
|
|
35
|
+
## Contributing
|
|
36
|
+
|
|
37
|
+
Other Art Museums with public apis are good candidates to contribute to this schema.
|
|
38
|
+
|
|
39
|
+
1. Add a schema designed for the module as a new `.graphql` file.
|
|
40
|
+
2. Update the `supergraph.yaml` file accordingly.
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
extend schema
|
|
2
|
+
@link(url: "https://specs.apollo.dev/federation/v2.11", import: ["@key", "@external", "@provides"]) # Enable this schema to use Apollo Federation features
|
|
3
|
+
@link( # Enable this schema to use Apollo Connectors
|
|
4
|
+
url: "https://specs.apollo.dev/connect/v0.2"
|
|
5
|
+
import: ["@connect", "@source"]
|
|
6
|
+
)
|
|
7
|
+
|
|
8
|
+
#this api is blocked on localhost without a user agent header, it can be any value you like
|
|
9
|
+
@source(
|
|
10
|
+
name: "artic"
|
|
11
|
+
http: {
|
|
12
|
+
baseURL: "https://api.artic.edu/api/v1/"
|
|
13
|
+
headers: [
|
|
14
|
+
{ name: "Content-Type", value: "application/json" }
|
|
15
|
+
{ name: "User-Agent", value: "Apollo-Connect" }
|
|
16
|
+
]
|
|
17
|
+
}
|
|
18
|
+
)
|
|
19
|
+
|
|
20
|
+
type Query {
|
|
21
|
+
# Fetch artworks by artist name or title or general term like sunflowers
|
|
22
|
+
searchArtwork(searchTerm: String!, limit: Int = 5): ArtworkSearchResponse
|
|
23
|
+
@connect(
|
|
24
|
+
source: "artic"
|
|
25
|
+
http: { GET: "artworks/search?q={$args.searchTerm}&limit={$args.limit}" }
|
|
26
|
+
selection: """
|
|
27
|
+
pagination {
|
|
28
|
+
limit
|
|
29
|
+
totalPages: total_pages
|
|
30
|
+
currentPage: current_page
|
|
31
|
+
}
|
|
32
|
+
data {
|
|
33
|
+
id
|
|
34
|
+
apiModel: api_model
|
|
35
|
+
title
|
|
36
|
+
thumbnail {
|
|
37
|
+
imgData: lqip
|
|
38
|
+
width
|
|
39
|
+
height
|
|
40
|
+
altText: alt_text
|
|
41
|
+
}
|
|
42
|
+
timestamp
|
|
43
|
+
}
|
|
44
|
+
info {
|
|
45
|
+
licenseText: license_text
|
|
46
|
+
licenseLinks: license_links
|
|
47
|
+
version
|
|
48
|
+
}
|
|
49
|
+
"""
|
|
50
|
+
)
|
|
51
|
+
|
|
52
|
+
searchArtworkById(artId: String!): ArtworkDetailResponse
|
|
53
|
+
@connect(
|
|
54
|
+
source: "artic"
|
|
55
|
+
http: { GET: "artworks/{$args.artId}" }
|
|
56
|
+
selection: """
|
|
57
|
+
data {
|
|
58
|
+
id
|
|
59
|
+
apiModel: api_model
|
|
60
|
+
title
|
|
61
|
+
thumbnail {
|
|
62
|
+
imgData: lqip
|
|
63
|
+
width
|
|
64
|
+
height
|
|
65
|
+
altText: alt_text
|
|
66
|
+
}
|
|
67
|
+
dateStart: date_start
|
|
68
|
+
dateEnd: date_end
|
|
69
|
+
dateDisplay: date_display
|
|
70
|
+
artistDisplay: artist_display
|
|
71
|
+
placeOfOrigin: place_of_origin
|
|
72
|
+
description
|
|
73
|
+
dimensions
|
|
74
|
+
mediumDisplay: medium_display
|
|
75
|
+
inscriptions
|
|
76
|
+
artworkTypeTitle: artwork_type_title
|
|
77
|
+
departmentTitle: department_title
|
|
78
|
+
artistTitle: artist_title
|
|
79
|
+
styleTitle: style_title
|
|
80
|
+
timestamp
|
|
81
|
+
}
|
|
82
|
+
info {
|
|
83
|
+
licenseText: license_text
|
|
84
|
+
licenseLinks: license_links
|
|
85
|
+
version
|
|
86
|
+
}
|
|
87
|
+
"""
|
|
88
|
+
)
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
type ArtworkSearchResponse {
|
|
92
|
+
pagination: Pagination
|
|
93
|
+
data: [Artwork]
|
|
94
|
+
info: Info
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
type ArtworkDetailResponse {
|
|
98
|
+
data: ArtworkDetail
|
|
99
|
+
info: Info
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
type Artwork {
|
|
103
|
+
id: ID!
|
|
104
|
+
apiModel: String
|
|
105
|
+
title: String
|
|
106
|
+
thumbnail: Thumbnail
|
|
107
|
+
timestamp: String
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
type ArtworkDetail {
|
|
111
|
+
id: ID!
|
|
112
|
+
apiModel: String
|
|
113
|
+
title: String
|
|
114
|
+
thumbnail: Thumbnail
|
|
115
|
+
timestamp: String
|
|
116
|
+
|
|
117
|
+
# Detail-specific fields
|
|
118
|
+
dateStart: Int
|
|
119
|
+
dateEnd: Int
|
|
120
|
+
dateDisplay: String
|
|
121
|
+
artistDisplay: String
|
|
122
|
+
placeOfOrigin: String
|
|
123
|
+
description: String
|
|
124
|
+
dimensions: String
|
|
125
|
+
mediumDisplay: String
|
|
126
|
+
inscriptions: String
|
|
127
|
+
artworkTypeTitle: String
|
|
128
|
+
departmentTitle: String
|
|
129
|
+
artistTitle: String
|
|
130
|
+
styleTitle: String
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
type Thumbnail {
|
|
134
|
+
imgData: String
|
|
135
|
+
width: Int
|
|
136
|
+
height: Int
|
|
137
|
+
altText: String
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
type Pagination {
|
|
141
|
+
limit: Int
|
|
142
|
+
totalPages: Int
|
|
143
|
+
currentPage: Int
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
type Info {
|
|
147
|
+
licenseText: String
|
|
148
|
+
licenseLinks: [String]
|
|
149
|
+
version: String
|
|
150
|
+
}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
extend schema
|
|
2
|
+
@link(
|
|
3
|
+
url: "https://specs.apollo.dev/federation/v2.11"
|
|
4
|
+
import: ["@key", "@external", "@provides", "@shareable"]
|
|
5
|
+
) # Enable this schema to use Apollo Federation features
|
|
6
|
+
@link( # Enable this schema to use Apollo Connectors
|
|
7
|
+
url: "https://specs.apollo.dev/connect/v0.2"
|
|
8
|
+
import: ["@connect", "@source"]
|
|
9
|
+
)
|
|
10
|
+
#this api is blocked on localhost without a user agent header, it can be any value you like
|
|
11
|
+
@source(
|
|
12
|
+
name: "metmuseum"
|
|
13
|
+
http: {
|
|
14
|
+
baseURL: "https://collectionapi.metmuseum.org/public/collection/v1/"
|
|
15
|
+
}
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
type Query {
|
|
19
|
+
# Search for artworks by natural language, returns an array of iDs
|
|
20
|
+
getMetArtworkIds(searchTerm: String!): ArtworkSearchResult
|
|
21
|
+
@connect(
|
|
22
|
+
source: "metmuseum"
|
|
23
|
+
http: { GET: "search?q={$args.searchTerm}" }
|
|
24
|
+
selection: """
|
|
25
|
+
total
|
|
26
|
+
objectIDs
|
|
27
|
+
"""
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
# Direct query by specific ID
|
|
32
|
+
getMetArtworkDetailsById(objectId: Int!): ArtworkDetails
|
|
33
|
+
@connect(
|
|
34
|
+
source: "metmuseum"
|
|
35
|
+
http: { GET: "objects/{$args.objectId}" }
|
|
36
|
+
selection: """
|
|
37
|
+
objectID
|
|
38
|
+
accessionYear
|
|
39
|
+
isPublicDomain
|
|
40
|
+
primaryImage
|
|
41
|
+
additionalImages
|
|
42
|
+
department
|
|
43
|
+
objectName
|
|
44
|
+
title
|
|
45
|
+
artistDisplayName
|
|
46
|
+
artistDisplayBio
|
|
47
|
+
artistNationality
|
|
48
|
+
artistBeginDate
|
|
49
|
+
artistEndDate
|
|
50
|
+
artistGender
|
|
51
|
+
artistWikidata: artistWikidata_URL
|
|
52
|
+
objectDate
|
|
53
|
+
objectBeginDate
|
|
54
|
+
objectEndDate
|
|
55
|
+
medium
|
|
56
|
+
classification
|
|
57
|
+
objectURL
|
|
58
|
+
"""
|
|
59
|
+
)
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
type ArtworkSearchResult {
|
|
63
|
+
total: Int
|
|
64
|
+
objectIDs: [Int]
|
|
65
|
+
# Automatically fetch the first artwork details
|
|
66
|
+
firstArtwork: ArtworkDetails
|
|
67
|
+
@connect(
|
|
68
|
+
source: "metmuseum"
|
|
69
|
+
http: { GET: "objects/{$this.objectIDs->first}" }
|
|
70
|
+
selection: """
|
|
71
|
+
objectID
|
|
72
|
+
accessionYear
|
|
73
|
+
isPublicDomain
|
|
74
|
+
primaryImage
|
|
75
|
+
additionalImages
|
|
76
|
+
department
|
|
77
|
+
objectName
|
|
78
|
+
title
|
|
79
|
+
artistDisplayName
|
|
80
|
+
artistDisplayBio
|
|
81
|
+
artistNationality
|
|
82
|
+
artistBeginDate
|
|
83
|
+
artistEndDate
|
|
84
|
+
artistGender
|
|
85
|
+
artistWikidata: artistWikidata_URL
|
|
86
|
+
objectDate
|
|
87
|
+
objectBeginDate
|
|
88
|
+
objectEndDate
|
|
89
|
+
medium
|
|
90
|
+
classification
|
|
91
|
+
objectURL
|
|
92
|
+
"""
|
|
93
|
+
)
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
type ArtworkDetails @shareable {
|
|
98
|
+
objectID: Int
|
|
99
|
+
accessionYear: String
|
|
100
|
+
isPublicDomain: Boolean
|
|
101
|
+
primaryImage: String
|
|
102
|
+
additionalImages: [String]
|
|
103
|
+
department: String
|
|
104
|
+
objectName: String
|
|
105
|
+
title: String
|
|
106
|
+
artistDisplayName: String
|
|
107
|
+
artistDisplayBio: String
|
|
108
|
+
artistNationality: String
|
|
109
|
+
artistBeginDate: Int
|
|
110
|
+
artistEndDate: Int
|
|
111
|
+
artistGender: String
|
|
112
|
+
artistWikidata: String
|
|
113
|
+
objectDate: String
|
|
114
|
+
objectBeginDate: Int
|
|
115
|
+
objectEndDate: Int
|
|
116
|
+
medium: String
|
|
117
|
+
classification: String
|
|
118
|
+
objectURL: String
|
|
119
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# NWS COnnector
|
|
2
|
+
|
|
3
|
+
This connector implements NWS APIs.
|
|
4
|
+
|
|
5
|
+
## Prerequisites
|
|
6
|
+
|
|
7
|
+
NWS maintains free to access APIs that enforce their own rate limits.
|
|
8
|
+
[NWS API Documentation](https://api.weather.gov/)
|
|
9
|
+
|
|
10
|
+
It is required to have a user-agent header with the best practice of adding contact information in the case of a security event. [See more information here](https://www.weather.gov/documentation/services-web-api)
|
|
11
|
+
|
|
12
|
+
## Getting Started
|
|
13
|
+
|
|
14
|
+
1. Create an [Apollo Studio](https://studio.apollographql.com/) account. This will provide the abilty to create and manage your graph including necesary credentials APOLLO_KEY and APOLLO_GRAPH_REF
|
|
15
|
+
2. [Install](https://www.apollographql.com/docs/rover/getting-started#installation-methods) and [authenticate](https://www.apollographql.com/docs/rover/configuring) Rover CLI to configure your graph and run locally.
|
|
16
|
+
3. Run `rover init` to generate a new connector. See the [Rover CLI documentation](https://www.apollographql.com/docs/rover) for more information and commands.
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
## Additional Setup for VS Code Task runner
|
|
20
|
+
|
|
21
|
+
Edit your `.vscode/settings.json` to include the following keys:
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
{
|
|
25
|
+
"terminal.integrated.profiles.osx": {
|
|
26
|
+
"graphos": {
|
|
27
|
+
"path": "zsh",
|
|
28
|
+
"args": ["-l"],
|
|
29
|
+
"env": {
|
|
30
|
+
"API_KEY": "",
|
|
31
|
+
"APOLLO_KEY": "",
|
|
32
|
+
...
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
"terminal.integrated.defaultProfile.osx": "graphos"
|
|
37
|
+
}
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Once you've set this up, you can execute the `Tasks: Run Task` command in VS Code to run the `rover dev` task.
|
|
41
|
+
Alternatively, you can open a new terminal window in VS Code with the `graphos` profile, then run `rover dev --supergraph-config supergraph.yaml --router-config router.yaml`.
|
|
42
|
+
|
|
43
|
+
## Contributing
|
|
44
|
+
|
|
45
|
+
If you are interested in contributing to this or other connectors we welcome contributions. PLease see the [contributing guide](https://github.com/apollographql/connectors-community?tab=readme-ov-file#contributing-a-connector-to-the-community) for more information
|