이 저장소에는 REST 및 gRPC 프로토콜을 모두 지원하는 공개 Google API의 원래 인터페이스 정의가 포함되어 있습니다. 원래 인터페이스 정의를 읽으면 Google API에 대한 더 나은 이해를 제공하고 이를 보다 효율적으로 활용하는 데 도움이 될 수 있습니다. 오픈 소스 도구와 함께 이러한 정의를 사용하여 클라이언트 라이브러리, 문서 및 기타 아티팩트를 생성할 수도 있습니다.
API 클라이언트 라이브러리를 빌드하는 권장 방법은 Bazel >= 4.2.2를 사용하는 것입니다.
먼저 바젤을 설치합니다.
모든 라이브러리를 빌드하려면:
bazel build //...
모든 라이브러리를 테스트하려면:
bazel test //...
모든 언어로 하나의 라이브러리를 구축하려면:
bazel build //google/example/library/v1/...
하나의 라이브러리에 대한 Java 패키지를 빌드하려면 다음을 수행하십시오.
bazel build //google/example/library/v1:google-cloud-example-library-v1-java
Bazel 패키지는 Java, Go, Python, Ruby, Node.js, PHP 및 C#용 모든 라이브러리에 존재합니다.
Google API는 일반적으로 다른 DNS 이름으로 호스팅되는 API 서비스로 배포됩니다. 하나의 API 서비스는 여러 API와 동일한 API의 여러 버전을 구현할 수 있습니다.
Google API는 프로토콜 버퍼 버전 3(proto3)을 인터페이스 정의 언어(IDL)로 사용하여 API 인터페이스와 페이로드 메시지의 구조를 정의합니다. API의 REST 및 RPC 버전 모두에 동일한 인터페이스 정의가 사용되며, 이는 서로 다른 유선 프로토콜을 통해 액세스할 수 있습니다.
Google API에 액세스하는 방법에는 여러 가지가 있습니다.
HTTP를 통한 JSON: Google API 클라이언트 라이브러리 또는 타사 API 클라이언트 라이브러리를 사용하여 HTTP를 통한 JSON을 사용하여 모든 Google API에 직접 액세스할 수 있습니다.
gRPC를 통한 프로토콜 버퍼: HTTP/2를 통한 고성능 바이너리 RPC 프로토콜인 GRPC를 통해 이 저장소에 게시된 Google API에 액세스할 수 있습니다. 요청/응답 다중화 및 전이중 스트리밍을 포함하여 많은 유용한 기능을 제공합니다.
Google Cloud 클라이언트 라이브러리: 이 라이브러리를 사용하여 Google Cloud API에 액세스할 수 있습니다. 더 나은 성능을 위해 gRPC를 기반으로 하며 더 나은 개발자 경험을 위해 관용적인 클라이언트 표면을 제공합니다.
이 저장소에는 Google API 정의 및 관련 파일의 사본이 포함되어 있습니다. Google API 클라이언트 라이브러리, GRPC 또는 Google Cloud 클라이언트 라이브러리에 대한 토론이나 문제 제기는 각 영역과 관련된 저장소를 참조하세요.
이 저장소는 Google API 제품 구조를 반영하는 디렉토리 계층 구조를 사용합니다. 일반적으로 모든 API에는 자체 루트 디렉터리가 있으며 API의 각 주요 버전에는 자체 하위 디렉터리가 있습니다. proto 패키지 이름은 디렉터리와 정확히 일치합니다. 이렇게 하면 proto 정의를 쉽게 찾을 수 있고 생성된 클라이언트 라이브러리가 대부분의 프로그래밍 언어에서 관용적 네임스페이스를 갖도록 할 수 있습니다. API 디렉토리와 함께 GAPIC 툴킷용 구성 파일이 있습니다.
참고: API의 주요 버전은 API에 대한 주요 변경 사항을 나타내는 데 사용됩니다.
이 저장소에서 Google API용 gRPC 소스 코드를 생성하려면 먼저 로컬 시스템에 프로토콜 버퍼와 gRPC를 모두 설치한 다음 make LANGUAGE=xxx all
실행하여 소스 코드를 생성할 수 있습니다. 생성된 소스 코드를 애플리케이션 빌드 시스템에 통합해야 합니다.
참고: Makefile은 전체 저장소에 대한 소스 코드를 생성하기 위한 용도로만 사용됩니다. 특정 API에 대해 연결 가능한 클라이언트 라이브러리를 생성하기 위한 것이 아닙니다. 연결 가능한 클라이언트 라이브러리를 생성하려면 https://github.com/googleapis 아래의 다른 저장소를 참조하세요.
Go에는 디렉터리 구조가 다르기 때문에 이 저장소에서 Go gRPC 소스 코드를 생성하기가 어렵습니다. 대신 이 저장소를 사용해 주세요.