Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/strmprivacy/api-definitions

Our small contribution to your next API: these are the gRPC/Proto definitions STRM Privacy uses for our internal management APIs. It is a *push-only mirror* of our api-definitions repo we keep in GitLab, but we hope this serves as inspiration and/or a quick way for you to get started with gRPC yourself!
https://github.com/strmprivacy/api-definitions

golang grpc grpc-go grpc-java grpc-kotlin grpc-python grpc-web kotlin protobuf protocol-buffers python3 typescript

Last synced: 6 days ago
JSON representation

Our small contribution to your next API: these are the gRPC/Proto definitions STRM Privacy uses for our internal management APIs. It is a *push-only mirror* of our api-definitions repo we keep in GitLab, but we hope this serves as inspiration and/or a quick way for you to get started with gRPC yourself!

Awesome Lists containing this project

README

        

# STRM Privacy API definitions

This project contains all `proto` file definitions for the STRM Privacy APIs.

## Starting with STRM Privacy

Curious what we're building at STRM Privacy? See our [homepage](https://strmprivacy.io) or dive right into
our [documentation](https://docs.strmprivacy.io) to get started.

## Developing API Definitions

For more developer information, see the `docs` directory.

### gRPC Guidelines

We try to adhere to the Google gRPC guidelines (the so
called `API Improvement Proposals`), which can be
found [here](https://google.aip.dev). Our idea is to use
the [Google API Linter](https://github.com/googleapis/api-linter) for checking
the adherence to the Google AIPs.

### IntelliJ and Protobuf plugin configuration

Run `./setup-ide-protobuf-plugins.sh` to configure the following Protobuf
plugins:

- [Protocol Buffers (official)](https://plugins.jetbrains.com/plugin/14004-protocol-buffers):
works fine for basic usage.
- [Protobuf (non official)](https://plugins.jetbrains.com/plugin/16422-protobuf):
has more functionality than the official plugin.

### Install

Make sure [buf](https://buf.build) is installed. The `Makefile` is the
entrypoint
of this repository and should be used to generate code and build artifacts for
various languages.

## Proto validations

This repository
uses [bufbuild/protoc-gen-validate](https://github.com/bufbuild/protoc-gen-validate)
to validate Protobuf messages.

**Important!**

If validations are created for messages in `A.proto` and file `B.proto` contains
messages that use messages from `A.proto`, but `B.proto` does not
import `validate.proto`, no validators are generated for `B.proto`, and thus no
validations happen that are defined in `A.proto`, even though `B.proto` might
use messages from `A.proto` in its own messages.