Skip to content

Commit 9d92a7b

Browse files
authored
Create GraphClientsDesign.md
1 parent 0346656 commit 9d92a7b

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed

design/GraphClientsDesign.md

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
2+
### Graph JS Deliverables:
3+
4+
Note: Package names yet to be decided
5+
6+
1. `microsoftgraph/microsoft-graph-javascript-service`:
7+
8+
- Generated library which the request builders. Generated using Kiota builder.
9+
10+
- Will have dependencies on :
11+
- @microsoftgraph/microsoft-graph-javascript-core
12+
- @microsoft/kiota-abstractions
13+
- @microsoft/kiota-http-fetchlibrary
14+
- @microsoft/kiota-serialization-json
15+
16+
2. `microsoftgraph/microsoft-graph-javascript-core`:
17+
18+
- Contains Graph customizations and tasks such as PageIteration, LargeFileUpload.
19+
20+
- Will have dependencies on :
21+
- @microsoft/kiota-abstractions
22+
- @microsoft/kiota-http-fetchlibrary
23+
24+
### Usage of the two libraries :
25+
26+
As mentioned in PR: #558
27+
28+
Goals:
29+
30+
- A Graph JS SDK user should not be required to create separate client instances for Graph Service library or the Graph Core library.
31+
- To achieve this, the `Graph Service Client` should also expose the features of `Graph Core Client`.
32+
33+
Design:
34+
35+
1. `Graph Service client` should extend from `Graph Core Client`:
36+
37+
```
38+
39+
import { Client as GraphCoreClient } from `@microsoft/microsoft-graph-javascript-core`;
40+
41+
42+
class GraphServiceClient extends GraphCoreClient {
43+
44+
public api(){
45+
super.api();
46+
}
47+
}
48+
```
49+
50+
- To acheive the above design we will need to customize the auto-generated `GraphServiceClient`.
51+
52+

0 commit comments

Comments
 (0)