ProtocApi

<back to all web services

Protoc

The following routes are available for this service:
All Verbs/protoc/{Lang}

// @DataContract
export enum ProtocLang
{
    Cpp = 'cpp',
    CSharp = 'csharp',
    Dart = 'dart',
    Java = 'java',
    JavaLite = 'java-lite',
    ObjectiveC = 'objc',
    Php = 'php',
    Python = 'python',
    Ruby = 'ruby',
    Go = 'go',
    JavaScriptClosure = 'js-closure',
    JavaScriptCommonJs = 'js-commonjs',
    JavaScriptNodeJs = 'js-node',
    Swift = 'swift',
    TypeScript = 'ts',
    TypeScriptBinary = 'ts-binary',
}

export class ProtocResponse
{
    public lang: ProtocLang;
    public generatedFiles: { [index: string]: string; };
    public archiveUrl: string;
    public responseStatus: ResponseStatus;

    public constructor(init?: Partial<ProtocResponse>) { (Object as any).assign(this, init); }
}

export class Protoc
{
    public lang: ProtocLang;
    public files: { [index: string]: string; };
    public protoUrl: string;

    public constructor(init?: Partial<Protoc>) { (Object as any).assign(this, init); }
}

TypeScript Protoc DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + JSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /protoc/{Lang} HTTP/1.1 
Host: grpc.servicestack.net 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	lang: cpp,
	files: 
	{
		String: String
	},
	protoUrl: String
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	lang: cpp,
	generatedFiles: 
	{
		String: String
	},
	archiveUrl: String,
	responseStatus: 
	{
		errorCode: String,
		message: String,
		stackTrace: String,
		errors: 
		[
			{
				errorCode: String,
				fieldName: String,
				message: String,
				meta: 
				{
					String: String
				}
			}
		],
		meta: 
		{
			String: String
		}
	}
}