TypeScript
API टोकन बनाने और platform.proto डाउनलोड करने के लिए gRPC मार्गदर्शन देखें। नीचे के कमांड उसी डायरेक्टरी में चलाएँ।
ब्राउज़र मूल gRPC HTTP/2 कनेक्शन नहीं खोल सकते। प्लेटफ़ॉर्म HTTP/1.1 पर gRPC-Web भी स्वीकार करता है। protoc, protoc-gen-js, protoc-gen-grpc-web और रनटाइम पैकेज इंस्टॉल करें:
npm install grpc-web google-protobuf
npm install --save-dev @types/google-protobuf
mkdir -p src/generated
protoc -I. platform.proto \
--js_out=import_style=commonjs,binary:src/generated \
--grpc-web_out=import_style=typescript,mode=grpcweb:src/generated
आधिकारिक gRPC-Web रिलीज़/सेटअप से कंपाइलर प्लगइन डाउनलोड करके PATH में रखें। कमांड platform_pb.js, TypeScript घोषणाएँ, PlatformServiceClientPb.ts बनाता है।
import {PlatformServicePromiseClient} from './generated/PlatformServiceClientPb';
import {GetCatalogRequest, ListCatalogsRequest} from './generated/platform_pb';
// Supply a token at runtime. Do not bundle a long-lived API token in browser code.
export async function listCatalogDetails(token: string) {
const client = new PlatformServicePromiseClient('https://reconstruct.dev');
const metadata = {authorization: `Bearer ${token}`};
const listRequest = new ListCatalogsRequest();
listRequest.setPageSize(10);
const page = await client.listCatalogs(listRequest, metadata);
for (const catalog of page.getCatalogsList()) {
const detailRequest = new GetCatalogRequest();
detailRequest.setCatalogId(catalog.getCatalogId());
const detail = await client.getCatalog(detailRequest, metadata);
console.log(detail.getCatalogId(), detail.getDescription());
}
}
ब्राउज़र ऐप के लिए सार्वजनिक API को CORS से उसका origin स्वीकार करना चाहिए। स्थायी टोकन विश्वसनीय सर्वर पर रखें; ब्राउज़र बंडल एम्बेडेड सीक्रेट सुरक्षित नहीं रखता।