Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/stephenh/photon-sandbox
https://github.com/stephenh/photon-sandbox
Last synced: 2 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/stephenh/photon-sandbox
- Owner: stephenh
- Created: 2019-06-25T01:21:13.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2022-06-02T21:07:09.000Z (over 2 years ago)
- Last Synced: 2024-10-12T10:15:17.866Z (about 1 month ago)
- Language: TypeScript
- Size: 7.16 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# gRPC Server Example
This example shows how to implement a **gRPC API with TypeScript** and [Photon JS](https://photonjs.prisma.io/).
## How to use
### 1. Download example & install dependencies
Clone the repository:
```
git clone [email protected]:prisma/photonjs.git
```Install Node dependencies:
```
cd photonjs/examples/typescript/grpc
npm install
```### 2. Install the Prisma 2 CLI
To run the example, you need the [Prisma 2 CLI](https://github.com/prisma/prisma2-docs/blob/master/prisma-2-cli.md):
```
npm install -g prisma2
```### 3. Set up database
For this example, you'll use a simple [SQLite database](https://www.sqlite.org/index.html). To set up your database, run:
```
prisma2 lift save --name 'init'
prisma2 lift up
```You can now use the [SQLite Browser](https://sqlitebrowser.org/) to view and edit your data in the `./prisma/dev.db` file that was created when you ran `prisma2 lift up`.
### 4. Generate Photon (type-safe database client)
Run the following command to generate [Photon JS](https://photonjs.prisma.io/):
```
prisma2 generate
```### 5. Start the gRPC server
```
npm run start
```The server is now running on `0.0.0.0:50051`.
### 6. Using the gRPC API
To use the gRPC API, you need a gRPC client. We provide several client scripts inside the [`./client`](./client) directory. Each script is named according to the operation it performs against the gRPC API (e.g. the [`feed.js`](./client/feed.js) script sends the [`Feed`](./service.proto#L7) operation). Each script can be invoked by running the corresponding NPM script defined in [`package.json`](./package.json), e.g. `npm run feed`.
In case you prefer a GUI client, we recommend [BloomRPC](https://github.com/uw-labs/bloomrpc):
![](https://imgur.com/0EiIo03.png)
## Next steps
- Read the [Prisma 2 announcement](https://www.prisma.io/blog/announcing-prisma-2-zq1s745db8i5/)
- Check out the [Prisma 2 docs](https://github.com/prisma/prisma2-docs)
- Share your feedback in the [`prisma2-preview`](https://prisma.slack.com/messages/CKQTGR6T0/) channel on the Prisma Slack