project init
This commit is contained in:
commit
43d2a34c60
28
.gitignore
vendored
Normal file
28
.gitignore
vendored
Normal file
|
@ -0,0 +1,28 @@
|
|||
# Created by .ignore support plugin (hsz.mobi)
|
||||
### Java template
|
||||
# Compiled class file
|
||||
*.class
|
||||
|
||||
# Log file
|
||||
*.log
|
||||
|
||||
# BlueJ files
|
||||
*.ctxt
|
||||
|
||||
# Mobile Tools for Java (J2ME)
|
||||
.mtj.tmp/
|
||||
|
||||
# Package Files #
|
||||
*.jar
|
||||
*.war
|
||||
*.ear
|
||||
*.zip
|
||||
*.tar.gz
|
||||
*.rar
|
||||
|
||||
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
|
||||
hs_err_pid*
|
||||
|
||||
target/
|
||||
*.iml
|
||||
.idea/
|
173
dh.json
Normal file
173
dh.json
Normal file
|
@ -0,0 +1,173 @@
|
|||
[{
|
||||
"firstScanRange": 1,
|
||||
"lastScanRange": 10000,
|
||||
"name": "",
|
||||
"ip": 3232235818,
|
||||
"mac": 91754662925,
|
||||
"os":"Windows",
|
||||
"ports": [{
|
||||
"createDate": -62135596800000,
|
||||
"updateDate": -62135596800000,
|
||||
"services": [{
|
||||
"createDate": -62135596800000,
|
||||
"updateDate": -62135596800000,
|
||||
"portType": "TCP",
|
||||
"serviceName": "SSH",
|
||||
"target":true
|
||||
}],
|
||||
"portType": "TCP",
|
||||
"portNumber": 22
|
||||
},
|
||||
{
|
||||
"createDate": -62135596800000,
|
||||
"updateDate": -62135596800000,
|
||||
"services": [{
|
||||
"createDate": -62135596800000,
|
||||
"updateDate": -62135596800000,
|
||||
"portType": "TCP",
|
||||
"serviceName": "HTTP"
|
||||
}],
|
||||
"portType": "TCP",
|
||||
"portNumber": 443
|
||||
},
|
||||
{
|
||||
"createDate": -62135596800000,
|
||||
"updateDate": -62135596800000,
|
||||
"services": [{
|
||||
"createDate": -62135596800000,
|
||||
"updateDate": -62135596800000,
|
||||
"portType": "TCP",
|
||||
"serviceName": "HTTP"
|
||||
}],
|
||||
"portType": "TCP",
|
||||
"portNumber": 80
|
||||
}],
|
||||
"createDate": 1498470178000,
|
||||
"updateDate": 1498470178000
|
||||
},
|
||||
{
|
||||
"firstScanRange": 1,
|
||||
"lastScanRange": 10000,
|
||||
"name": "",
|
||||
"ip": 3232235781,
|
||||
"mac": 91754660625,
|
||||
"os":"Windows",
|
||||
"ports": [{
|
||||
"createDate": -62135596800000,
|
||||
"updateDate": -62135596800000,
|
||||
"services": [{
|
||||
"createDate": -62135596800000,
|
||||
"updateDate": -62135596800000,
|
||||
"portType": "TCP",
|
||||
"serviceName": "SSH"
|
||||
}],
|
||||
"portType": "TCP",
|
||||
"portNumber": 22
|
||||
},
|
||||
{
|
||||
"createDate": -62135596800000,
|
||||
"updateDate": -62135596800000,
|
||||
"services": [{
|
||||
"createDate": -62135596800000,
|
||||
"updateDate": -62135596800000,
|
||||
"portType": "TCP",
|
||||
"serviceName": "HTTP"
|
||||
}],
|
||||
"portType": "TCP",
|
||||
"portNumber": 80
|
||||
},
|
||||
{
|
||||
"createDate": -62135596800000,
|
||||
"updateDate": -62135596800000,
|
||||
"services": [{
|
||||
"createDate": -62135596800000,
|
||||
"updateDate": -62135596800000,
|
||||
"portType": "TCP",
|
||||
"serviceName": "HTTP"
|
||||
}],
|
||||
"portType": "TCP",
|
||||
"portNumber": 1936
|
||||
},
|
||||
{
|
||||
"createDate": -62135596800000,
|
||||
"updateDate": -62135596800000,
|
||||
"services": null,
|
||||
"portType": "TCP",
|
||||
"portNumber": 443
|
||||
}],
|
||||
"createDate": 1498470178000,
|
||||
"updateDate": 1498470178000
|
||||
},
|
||||
{
|
||||
"firstScanRange": 1,
|
||||
"lastScanRange": 10000,
|
||||
"name": "",
|
||||
"ip": 3232235797,
|
||||
"mac": 91754662913,
|
||||
"os":"Windows",
|
||||
"target":true,
|
||||
"ports": [{
|
||||
"createDate": -62135596800000,
|
||||
"updateDate": -62135596800000,
|
||||
"services": [{
|
||||
"createDate": -62135596800000,
|
||||
"updateDate": -62135596800000,
|
||||
"portType": "TCP",
|
||||
"serviceName": "HTTP"
|
||||
}],
|
||||
"portType": "TCP",
|
||||
"portNumber": 80
|
||||
},
|
||||
{
|
||||
"createDate": -62135596800000,
|
||||
"updateDate": -62135596800000,
|
||||
"services": [{
|
||||
"createDate": -62135596800000,
|
||||
"updateDate": -62135596800000,
|
||||
"portType": "TCP",
|
||||
"serviceName": "SSH"
|
||||
}],
|
||||
"portType": "TCP",
|
||||
"portNumber": 22
|
||||
},
|
||||
{
|
||||
"createDate": -62135596800000,
|
||||
"updateDate": -62135596800000,
|
||||
"services": [{
|
||||
"createDate": -62135596800000,
|
||||
"updateDate": -62135596800000,
|
||||
"portType": "TCP",
|
||||
"serviceName": "HTTP"
|
||||
}],
|
||||
"portType": "TCP",
|
||||
"portNumber": 3343
|
||||
},
|
||||
{
|
||||
"createDate": -62135596800000,
|
||||
"updateDate": -62135596800000,
|
||||
"services": [{
|
||||
"createDate": -62135596800000,
|
||||
"updateDate": -62135596800000,
|
||||
"portType": "TCP",
|
||||
"serviceName": "HTTP"
|
||||
}],
|
||||
"portType": "TCP",
|
||||
"portNumber": 443
|
||||
}],
|
||||
"createDate": 1498470178000,
|
||||
"updateDate": 1498470178000
|
||||
},
|
||||
{
|
||||
"firstScanRange": 1,
|
||||
"lastScanRange": 10000,
|
||||
"name": "",
|
||||
"ip": 3232235877,
|
||||
"mac": 75361038758387,
|
||||
"os":"Windows",
|
||||
"ports": null,
|
||||
"createDate": 1498470179000,
|
||||
"updateDate": 1498470179000
|
||||
}
|
||||
|
||||
|
||||
]
|
214
golang/server_grpc.pb.go
Normal file
214
golang/server_grpc.pb.go
Normal file
|
@ -0,0 +1,214 @@
|
|||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// source: server_grpc.proto
|
||||
|
||||
/*
|
||||
Package server_grpc is a generated protocol buffer package.
|
||||
|
||||
It is generated from these files:
|
||||
server_grpc.proto
|
||||
|
||||
It has these top-level messages:
|
||||
ServerInput
|
||||
ServerParam
|
||||
ServerOutput
|
||||
*/
|
||||
package server_grpc
|
||||
|
||||
import proto "github.com/golang/protobuf/proto"
|
||||
import fmt "fmt"
|
||||
import math "math"
|
||||
|
||||
import (
|
||||
context "golang.org/x/net/context"
|
||||
grpc "google.golang.org/grpc"
|
||||
)
|
||||
|
||||
// Reference imports to suppress errors if they are not otherwise used.
|
||||
var _ = proto.Marshal
|
||||
var _ = fmt.Errorf
|
||||
var _ = math.Inf
|
||||
|
||||
// This is a compile-time assertion to ensure that this generated file
|
||||
// is compatible with the proto package it is being compiled against.
|
||||
// A compilation error at this line likely means your copy of the
|
||||
// proto package needs to be updated.
|
||||
const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
|
||||
|
||||
type ServerInput struct {
|
||||
Target string `protobuf:"bytes,1,opt,name=target" json:"target,omitempty"`
|
||||
Method string `protobuf:"bytes,2,opt,name=method" json:"method,omitempty"`
|
||||
Params []string `protobuf:"bytes,3,rep,name=params" json:"params,omitempty"`
|
||||
}
|
||||
|
||||
func (m *ServerInput) Reset() { *m = ServerInput{} }
|
||||
func (m *ServerInput) String() string { return proto.CompactTextString(m) }
|
||||
func (*ServerInput) ProtoMessage() {}
|
||||
func (*ServerInput) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
|
||||
|
||||
func (m *ServerInput) GetTarget() string {
|
||||
if m != nil {
|
||||
return m.Target
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (m *ServerInput) GetMethod() string {
|
||||
if m != nil {
|
||||
return m.Method
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (m *ServerInput) GetParams() []string {
|
||||
if m != nil {
|
||||
return m.Params
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type ServerParam struct {
|
||||
Type string `protobuf:"bytes,1,opt,name=type" json:"type,omitempty"`
|
||||
Data string `protobuf:"bytes,2,opt,name=data" json:"data,omitempty"`
|
||||
IsCollection bool `protobuf:"varint,3,opt,name=isCollection" json:"isCollection,omitempty"`
|
||||
}
|
||||
|
||||
func (m *ServerParam) Reset() { *m = ServerParam{} }
|
||||
func (m *ServerParam) String() string { return proto.CompactTextString(m) }
|
||||
func (*ServerParam) ProtoMessage() {}
|
||||
func (*ServerParam) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }
|
||||
|
||||
func (m *ServerParam) GetType() string {
|
||||
if m != nil {
|
||||
return m.Type
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (m *ServerParam) GetData() string {
|
||||
if m != nil {
|
||||
return m.Data
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (m *ServerParam) GetIsCollection() bool {
|
||||
if m != nil {
|
||||
return m.IsCollection
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
type ServerOutput struct {
|
||||
Result string `protobuf:"bytes,1,opt,name=result" json:"result,omitempty"`
|
||||
}
|
||||
|
||||
func (m *ServerOutput) Reset() { *m = ServerOutput{} }
|
||||
func (m *ServerOutput) String() string { return proto.CompactTextString(m) }
|
||||
func (*ServerOutput) ProtoMessage() {}
|
||||
func (*ServerOutput) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }
|
||||
|
||||
func (m *ServerOutput) GetResult() string {
|
||||
if m != nil {
|
||||
return m.Result
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func init() {
|
||||
proto.RegisterType((*ServerInput)(nil), "ServerInput")
|
||||
proto.RegisterType((*ServerParam)(nil), "ServerParam")
|
||||
proto.RegisterType((*ServerOutput)(nil), "ServerOutput")
|
||||
}
|
||||
|
||||
// Reference imports to suppress errors if they are not otherwise used.
|
||||
var _ context.Context
|
||||
var _ grpc.ClientConn
|
||||
|
||||
// This is a compile-time assertion to ensure that this generated file
|
||||
// is compatible with the grpc package it is being compiled against.
|
||||
const _ = grpc.SupportPackageIsVersion4
|
||||
|
||||
// Client API for OverflowApiServer service
|
||||
|
||||
type OverflowApiServerClient interface {
|
||||
Exec(ctx context.Context, in *ServerInput, opts ...grpc.CallOption) (*ServerOutput, error)
|
||||
}
|
||||
|
||||
type overflowApiServerClient struct {
|
||||
cc *grpc.ClientConn
|
||||
}
|
||||
|
||||
func NewOverflowApiServerClient(cc *grpc.ClientConn) OverflowApiServerClient {
|
||||
return &overflowApiServerClient{cc}
|
||||
}
|
||||
|
||||
func (c *overflowApiServerClient) Exec(ctx context.Context, in *ServerInput, opts ...grpc.CallOption) (*ServerOutput, error) {
|
||||
out := new(ServerOutput)
|
||||
err := grpc.Invoke(ctx, "/OverflowApiServer/exec", in, out, c.cc, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
// Server API for OverflowApiServer service
|
||||
|
||||
type OverflowApiServerServer interface {
|
||||
Exec(context.Context, *ServerInput) (*ServerOutput, error)
|
||||
}
|
||||
|
||||
func RegisterOverflowApiServerServer(s *grpc.Server, srv OverflowApiServerServer) {
|
||||
s.RegisterService(&_OverflowApiServer_serviceDesc, srv)
|
||||
}
|
||||
|
||||
func _OverflowApiServer_Exec_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(ServerInput)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(OverflowApiServerServer).Exec(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: "/OverflowApiServer/Exec",
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(OverflowApiServerServer).Exec(ctx, req.(*ServerInput))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
var _OverflowApiServer_serviceDesc = grpc.ServiceDesc{
|
||||
ServiceName: "OverflowApiServer",
|
||||
HandlerType: (*OverflowApiServerServer)(nil),
|
||||
Methods: []grpc.MethodDesc{
|
||||
{
|
||||
MethodName: "exec",
|
||||
Handler: _OverflowApiServer_Exec_Handler,
|
||||
},
|
||||
},
|
||||
Streams: []grpc.StreamDesc{},
|
||||
Metadata: "server_grpc.proto",
|
||||
}
|
||||
|
||||
func init() { proto.RegisterFile("server_grpc.proto", fileDescriptor0) }
|
||||
|
||||
var fileDescriptor0 = []byte{
|
||||
// 240 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x54, 0x90, 0x3d, 0x4f, 0xc3, 0x30,
|
||||
0x10, 0x40, 0x31, 0xa9, 0x2a, 0x38, 0xc2, 0x50, 0x0f, 0x10, 0x31, 0xa0, 0xc8, 0x12, 0xa8, 0x93,
|
||||
0x07, 0xd8, 0xd8, 0x80, 0x89, 0xa9, 0x55, 0x11, 0x03, 0x13, 0x32, 0xe9, 0xb5, 0x44, 0x72, 0x7a,
|
||||
0x96, 0x73, 0x29, 0xf0, 0x0f, 0xf8, 0xd9, 0xc8, 0x1f, 0xa0, 0x76, 0xbb, 0xf7, 0x24, 0x3f, 0x9d,
|
||||
0x0f, 0x26, 0x3d, 0xfa, 0x2d, 0xfa, 0xb7, 0xb5, 0x77, 0x8d, 0x76, 0x9e, 0x98, 0xd4, 0x0b, 0x9c,
|
||||
0x3c, 0x47, 0xf9, 0xb4, 0x71, 0x03, 0xcb, 0x33, 0x18, 0xb3, 0xf1, 0x6b, 0xe4, 0x4a, 0xd4, 0x62,
|
||||
0x7a, 0xbc, 0xc8, 0x14, 0x7c, 0x87, 0xfc, 0x41, 0xcb, 0xea, 0x30, 0xf9, 0x44, 0xc1, 0x3b, 0xe3,
|
||||
0x4d, 0xd7, 0x57, 0x45, 0x5d, 0x04, 0x9f, 0x48, 0xbd, 0xfe, 0x65, 0xe7, 0x81, 0xa5, 0x84, 0x11,
|
||||
0x7f, 0x3b, 0xcc, 0xd1, 0x38, 0x07, 0xb7, 0x34, 0x6c, 0x72, 0x30, 0xce, 0x52, 0x41, 0xd9, 0xf6,
|
||||
0x8f, 0x64, 0x2d, 0x36, 0xdc, 0xd2, 0xa6, 0x2a, 0x6a, 0x31, 0x3d, 0x5a, 0xec, 0x39, 0x75, 0x0d,
|
||||
0x65, 0x4a, 0xcf, 0x06, 0xce, 0x2b, 0x7b, 0xec, 0x07, 0xfb, 0xbf, 0x72, 0xa2, 0x9b, 0x3b, 0x98,
|
||||
0xcc, 0xb6, 0xe8, 0x57, 0x96, 0x3e, 0xef, 0x5d, 0x9b, 0x9e, 0xc8, 0x2b, 0x18, 0xe1, 0x17, 0x36,
|
||||
0xb2, 0xd4, 0x3b, 0xbf, 0xbe, 0x38, 0xd5, 0xbb, 0x45, 0x75, 0xf0, 0x70, 0x09, 0xe7, 0x0d, 0x75,
|
||||
0xda, 0x92, 0x59, 0x59, 0xd4, 0x94, 0x33, 0xda, 0xb8, 0x76, 0x2e, 0x7e, 0x84, 0x78, 0x1f, 0xc7,
|
||||
0xe3, 0xdd, 0xfe, 0x06, 0x00, 0x00, 0xff, 0xff, 0x11, 0xfd, 0x20, 0xaf, 0x51, 0x01, 0x00, 0x00,
|
||||
}
|
61
golang/server_test.go
Normal file
61
golang/server_test.go
Normal file
|
@ -0,0 +1,61 @@
|
|||
package server_grpc
|
||||
|
||||
import (
|
||||
"testing"
|
||||
"google.golang.org/grpc"
|
||||
"golang.org/x/net/context"
|
||||
"io/ioutil"
|
||||
)
|
||||
|
||||
func TestTarDis_saveAllTarget(t *testing.T) {
|
||||
|
||||
contents,_ := ioutil.ReadFile("../dh.json")
|
||||
|
||||
si := &ServerInput{}
|
||||
|
||||
si.Target = "TargetDiscoveryService"
|
||||
si.Method = "saveAllTarget"
|
||||
|
||||
si.Params = append(si.Params, string(contents))
|
||||
si.Params = append(si.Params, "{\"id\":1}")
|
||||
|
||||
callRPC(t, si)
|
||||
|
||||
}
|
||||
|
||||
|
||||
func TestRPCNP_readAllByDomain(t *testing.T) {
|
||||
|
||||
|
||||
si := &ServerInput{}
|
||||
|
||||
si.Target = "NoAuthProbeService"
|
||||
si.Method = "readAllByDomain"
|
||||
|
||||
//sp := &ServerParam{}
|
||||
//sp.IsCollection = false
|
||||
//sp.Type = "com.loafle.overflow.module.domain.model.Domain"
|
||||
//sp.Data = "{\"id\":1}"
|
||||
si.Params = append(si.Params, "{\"id\":1}")
|
||||
|
||||
callRPC(t, si)
|
||||
}
|
||||
|
||||
func callRPC(t *testing.T, si *ServerInput) {
|
||||
|
||||
conn, err := grpc.Dial(":50006", grpc.WithInsecure())
|
||||
|
||||
if err != nil {
|
||||
t.Log(err)
|
||||
}
|
||||
|
||||
client := NewOverflowApiServerClient(conn)
|
||||
|
||||
out, err := client.Exec(context.Background(), si)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
t.Log(out)
|
||||
|
||||
}
|
90
pom.xml
Normal file
90
pom.xml
Normal file
|
@ -0,0 +1,90 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<parent>
|
||||
<groupId>com.loafle</groupId>
|
||||
<artifactId>maven_parent_jar</artifactId>
|
||||
<version>1.0.0-RELEASE</version>
|
||||
</parent>
|
||||
|
||||
<groupId>com.loafle</groupId>
|
||||
<artifactId>central_api</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
<version>1.0.0-SNAPSHOT</version>
|
||||
<name>com.loafle.central_api</name>
|
||||
|
||||
<properties>
|
||||
<grpc.version>1.2.0</grpc.version>
|
||||
<protoc.version>3.2.0</protoc.version>
|
||||
<protoc-maven-plugin.version>0.5.0</protoc-maven-plugin.version>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>io.grpc</groupId>
|
||||
<artifactId>grpc-protobuf</artifactId>
|
||||
<version>${grpc.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.grpc</groupId>
|
||||
<artifactId>grpc-stub</artifactId>
|
||||
<version>${grpc.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>src/main/resources</directory>
|
||||
<filtering>true</filtering>
|
||||
</resource>
|
||||
</resources>
|
||||
<testResources>
|
||||
<testResource>
|
||||
<directory>src/test/resources</directory>
|
||||
<filtering>true</filtering>
|
||||
</testResource>
|
||||
</testResources>
|
||||
|
||||
<extensions>
|
||||
<extension>
|
||||
<groupId>kr.motd.maven</groupId>
|
||||
<artifactId>os-maven-plugin</artifactId>
|
||||
<version>1.5.0.Final</version>
|
||||
</extension>
|
||||
</extensions>
|
||||
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.xolstice.maven.plugins</groupId>
|
||||
<artifactId>protobuf-maven-plugin</artifactId>
|
||||
<version>${protoc-maven-plugin.version}</version>
|
||||
<configuration>
|
||||
<protocArtifact>com.google.protobuf:protoc:${protoc.version}:exe:${os.detected.classifier}</protocArtifact>
|
||||
<pluginId>grpc-java</pluginId>
|
||||
<pluginArtifact>io.grpc:protoc-gen-grpc-java:${grpc.version}:exe:${os.detected.classifier}</pluginArtifact>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>compile</goal>
|
||||
<goal>compile-custom</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.google.protobuf</groupId>
|
||||
<artifactId>protobuf-java</artifactId>
|
||||
<version>${protoc.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</plugin>
|
||||
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
</project>
|
1
src/main/proto/cmd
Normal file
1
src/main/proto/cmd
Normal file
|
@ -0,0 +1 @@
|
|||
protoc -I src/main/proto/ src/main/proto/server_grpc.proto --go_out=plugins=grpc:golang
|
26
src/main/proto/server_grpc.proto
Normal file
26
src/main/proto/server_grpc.proto
Normal file
|
@ -0,0 +1,26 @@
|
|||
syntax = "proto3";
|
||||
|
||||
option java_multiple_files = true;
|
||||
option java_package = "com.loafle.overflow.api";
|
||||
option java_generic_services = true;
|
||||
|
||||
message ServerInput {
|
||||
string target = 1;
|
||||
string method = 2;
|
||||
repeated string params = 3;
|
||||
}
|
||||
|
||||
message ServerParam {
|
||||
string type = 1;
|
||||
string data = 2;
|
||||
bool isCollection = 3;
|
||||
}
|
||||
|
||||
message ServerOutput {
|
||||
string result = 1;
|
||||
}
|
||||
|
||||
service OverflowApiServer {
|
||||
rpc exec(ServerInput) returns (ServerOutput) {}
|
||||
}
|
||||
|
0
src/main/resources/_
Normal file
0
src/main/resources/_
Normal file
Loading…
Reference in New Issue
Block a user