这是indexloc提供的服务,不要输入任何密码
Skip to content

colinlaney/openrtb

 
 

Repository files navigation

openrtb

GoDoc

OpenRTB v2.3 types for Go programming language (golang)

Warning! Using glide is recommended to vendor specific commit hash.

Using

go get -u "gopkg.in/mxmCherry/openrtb.v2"
import "gopkg.in/mxmCherry/openrtb.v2"

Goals

Provide base for OpenRTB-related projects, focusing on:

  • Extensive documentation
  • Strict specification (using unsigned numeric types for values, that are not meant to be signed; don't overuse pointers to avoid nil dereferencing etc.)
  • Efficient memory usage (using numeric types large enough just to hold intended values etc.)

Guidelines

Naming convention

  • UpperCamelCase
  • Capitalized abbreviations (e.g., AT, COPPA, PMP etc.)
  • Capitalized ID keys

Types

  • Key types should be chosen according to OpenRTB v2.3 specification (attribute types)
  • Numeric types:
    • architecture-independent, e.g., int32 instead of int
    • signed integral types should be used only when absolutely needed (value may contain negative numbers), unsigned integral types are preferred
    • but avoid uint8 as it has problems with JSON serialization
    • enumerations should be represented with minimal integral types, e.g., int8 for enumerations with <= 256 variants
    • for floating-point attributes only float64 type should be used

Documentation

  • Godoc: documenting Go code
  • Each entity (type or struct key) should be documented
  • Comments for entities should be copy-pasted "as-is" from OpenRTB specification

Code organization

  • Each RTB type should be kept in its own file, named after type
  • File names are in underscore_case, e.g., type BidRequest should be declared in bid_request.go
  • go fmt your code

About

OpenRTB v2.3 types for Go programming language (golang)

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 100.0%