Build API Docs with Apidog
  1. Example: Proto Documentation
Build API Docs with Apidog
  • Overview
  • REST API Documentations
    • Basics
      • API-Design First Approach
      • Specify an endpoint
      • Components
      • Common parameters
      • Global parameters
      • Schemas
        • Overview
        • Create a new schema
        • Build a schema
        • Generate Schemas from JSON etc.
    • Advanced features
      • Custom endpoint fields
      • Endpoint status
      • Appearance of parameter lists
      • Endpoint unique idenfication
    • Example: Pet Store
      • Get user info
      • Find pet by ID
      • Add a new pet to the store
      • Update an existing pet
      • Deletes a pet
      • Finds Pets by status
  • SOAP API Documentations
    • How to Use Apidog to Write SOAP API Documentation
    • Example: WebService
      • WebService: Number To Words
      • SOAP: Add integers
      • SOAP/WSDL: Ebay
    • Example: Mastercard
      • Purchase Request
      • Submit a purchase request
  • GraphQL Documentation
    • How to Write GraphQL API Documentation Using Apidog
    • Example: Github
      • Introduction to GraphQL
      • Queries
      • Public schema
  • WebSocket Documentations
    • How to Use Apidog to Write WebSocket API Documentation
    • Example: Coinbase
      • Overview
      • Channel
  • SSE API Documentations
    • Example: Anthropic
      • Streaming Messages
      • Messages
  • gRPC API Documentations
    • How to Use Apidog for gRPC API Documentation and Testing
    • Example: Proto Documentation
      • Protocol Documentation
  1. Example: Proto Documentation

Protocol Documentation

Table of Contents#

Booking.proto
Booking
BookingStatus
BookingStatusID
EmptyBookingMessage
BookingService
Customer.proto
Address
Customer
Vehicle.proto
Manufacturer
Model
Vehicle
Vehicle.Category
Manufacturer.Category
File-level Extensions
Scalar Value Types
Top

Booking.proto#

Booking related messages.
This file is really just an example. The data model is completely
fictional.

Booking#

Represents the booking of a vehicle.
Vehicles are some cool shit. But drive carefully!
FieldTypeLabelDescription
vehicle_idint32ID of booked vehicle.
customer_idint32Customer that booked the vehicle.
statusBookingStatusStatus of the booking.
confirmation_sentboolHas booking confirmation been sent?
payment_receivedboolHas payment been received?
color_preferencestringDeprecated. Color preference of the customer.

BookingStatus#

Represents the status of a vehicle booking.
FieldTypeLabelDescription
idint32Unique booking status ID.
descriptionstringBooking status description. E.g. "Active".

BookingStatusID#

Represents the booking status ID.
FieldTypeLabelDescription
idint32Unique booking status ID.

EmptyBookingMessage#

An empty message for testing

BookingService#

Service for handling vehicle bookings.
Method NameRequest TypeResponse TypeDescription
BookVehicleBookingBookingStatusUsed to book a vehicle. Pass in a Booking and a BookingStatus will be returned.
BookingUpdatesBookingStatusIDBookingStatus streamUsed to subscribe to updates of the BookingStatus.
Top

Customer.proto#

This file has messages for describing a customer.

Address#

Represents a mail address.
FieldTypeLabelDescription
address_line_1stringrequiredFirst address line.
address_line_2stringoptionalSecond address line.
address_line_3stringoptionalSecond address line.
townstringrequiredAddress town.
countystringoptionalAddress county, if applicable.
countrystringrequiredAddress country.

Customer#

Represents a customer.
FieldTypeLabelDescription
idint32requiredUnique customer ID.
first_namestringrequiredCustomer first name.
last_namestringrequiredCustomer last name.
detailsstringoptionalCustomer details.
email_addressstringoptionalCustomer e-mail address.
phone_numberstringrepeatedCustomer phone numbers, primary first.
mail_addressesAddressrepeatedCustomer mail addresses, primary first.
Top

Vehicle.proto#

Messages describing manufacturers / vehicles.

Manufacturer#

Represents a manufacturer of cars.
FieldTypeLabelDescription
idint32requiredThe unique manufacturer ID.
codestringrequiredA manufacturer code, e.g. "DKL4P".
detailsstringoptionalManufacturer details (minimum orders et.c.).
categoryManufacturer.CategoryoptionalManufacturer category. Default: CATEGORY_EXTERNAL

Model#

Represents a vehicle model.
FieldTypeLabelDescription
idstringrequiredThe unique model ID.
model_codestringrequiredThe car model code, e.g. "PZ003".
model_namestringrequiredThe car model name, e.g. "Z3".
daily_hire_rate_dollarssint32requiredDollars per day.
daily_hire_rate_centssint32requiredCents per day.

Vehicle#

Represents a vehicle that can be hired.
FieldTypeLabelDescription
idint32requiredUnique vehicle ID.
modelModelrequiredVehicle model.
reg_numberstringrequiredVehicle registration number.
mileagesint32optionalCurrent vehicle mileage, if known.
categoryVehicle.CategoryoptionalVehicle category.
daily_hire_rate_dollarssint32optionalDollars per day. Default: 50
daily_hire_rate_centssint32optionalCents per day.
ExtensionTypeBaseNumberDescription
seriesstringModel100Vehicle model series.

Vehicle.Category#

Represents a vehicle category. E.g. "Sedan" or "Truck".
FieldTypeLabelDescription
codestringrequiredCategory code. E.g. "S".
descriptionstringrequiredCategory name. E.g. "Sedan".

Manufacturer.Category#

Manufacturer category. A manufacturer may be either inhouse or external.
NameNumberDescription
CATEGORY_INHOUSE0The manufacturer is inhouse.
CATEGORY_EXTERNAL1The manufacturer is external.

File-level Extensions#

ExtensionTypeBaseNumberDescription
countrystringManufacturer100Manufacturer country. Default: China

Scalar Value Types#

.proto TypeNotesC++JavaPythonGoC#PHPRuby
doubledoubledoublefloatfloat64doublefloatFloat
floatfloatfloatfloatfloat32floatfloatFloat
int32Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead.int32intintint32intintegerBignum or Fixnum (as required)
int64Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead.int64longint/longint64longinteger/stringBignum
uint32Uses variable-length encoding.uint32intint/longuint32uintintegerBignum or Fixnum (as required)
uint64Uses variable-length encoding.uint64longint/longuint64ulonginteger/stringBignum or Fixnum (as required)
sint32Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s.int32intintint32intintegerBignum or Fixnum (as required)
sint64Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s.int64longint/longint64longinteger/stringBignum
fixed32Always four bytes. More efficient than uint32 if values are often greater than 2^28.uint32intintuint32uintintegerBignum or Fixnum (as required)
fixed64Always eight bytes. More efficient than uint64 if values are often greater than 2^56.uint64longint/longuint64ulonginteger/stringBignum
sfixed32Always four bytes.int32intintint32intintegerBignum or Fixnum (as required)
sfixed64Always eight bytes.int64longint/longint64longinteger/stringBignum
boolboolbooleanbooleanboolboolbooleanTrueClass/FalseClass
stringA string must always contain UTF-8 encoded or 7-bit ASCII text.stringStringstr/unicodestringstringstringString (UTF-8)
bytesMay contain any arbitrary sequence of bytes.stringByteStringstr[]byteByteStringstringString (ASCII-8BIT)
Modified at 2025-03-26 05:48:30
Previous
How to Use Apidog for gRPC API Documentation and Testing
Built with