ProtocApi

<back to all web services

Protoc

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

public class Protoc : Codable
{
    public var lang:ProtocLang
    public var files:[String:String] = [:]
    public var protoUrl:String

    required public init(){}
}

// @DataContract
public enum ProtocLang : String, Codable
{
    case Cpp
    case CSharp
    case Dart
    case Java
    case JavaLite
    case ObjectiveC
    case Php
    case Python
    case Ruby
    case Go
    case JavaScriptClosure
    case JavaScriptCommonJs
    case JavaScriptNodeJs
    case Swift
    case TypeScript
    case TypeScriptBinary
}

public class ProtocResponse : Codable
{
    public var lang:ProtocLang
    public var generatedFiles:[String:String] = [:]
    public var archiveUrl:String
    public var responseStatus:ResponseStatus

    required public init(){}
}


Swift 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
		}
	}
}