Rest 服务切换是否有平台/服务不可知的定义?

Rest 服务切换是否有平台/服务不可知的定义?,rest,service,cloud,paas,Rest,Service,Cloud,Paas,我很好奇是否有服务切换定义的规范。例如,如果在PaaS/IaaS上提供了服务,则最终用户需要一个哈希表,其中包含服务的详细信息、可以到达端点的位置、发布的端口以及使用的身份验证。(想一想HATEOAS ref_'s)我有两个模型,一个是什么样子的: 对象存储示例 name: myobjstor family: s3 about: https://aws.amazon.com/documentation/s3 zone: public protocol: spec: http host:

我很好奇是否有服务切换定义的规范。例如,如果在PaaS/IaaS上提供了服务,则最终用户需要一个哈希表,其中包含服务的详细信息、可以到达端点的位置、发布的端口以及使用的身份验证。(想一想HATEOAS ref_'s)我有两个模型,一个是什么样子的:

对象存储示例

name: myobjstor
family: s3
about: https://aws.amazon.com/documentation/s3
zone: public
protocol:
  spec: http
  host: s3.mysite.com
  port: 443
  tls: true
authentication:
  strategy: oauth2
  username: someuser
  password: somepassword
definition:
  type: swagger
  url: 'https://mysite/swagger.json'
name: myostack
family: openstack-keystone_v2.1
about: http://developer.openstack.org/api-ref.html
zone: public
protocol:
  spec: http
  host: keystone.mysite.com
  port: 443
  tls: true
authentication:
  strategy: oauth2
  username: someuser
  password: somepassword
definition:
  type: swagger
  url: 'https://mysite/swagger.json'
name: myredis
family: redis
about: http://redis.io/documentation
zone: public
protocol:
  spec: redis
  host: redis.mysite.com
  port: 6379
options:
  db: 0
name: mynfs
family: nfs
about: http://nfs.sourceforge.net
zone: public
protocol:
  spec: nfsv4
  host: nfs.mysite.com
  ports: 
    - 111
    - 2049
openstack示例

name: myobjstor
family: s3
about: https://aws.amazon.com/documentation/s3
zone: public
protocol:
  spec: http
  host: s3.mysite.com
  port: 443
  tls: true
authentication:
  strategy: oauth2
  username: someuser
  password: somepassword
definition:
  type: swagger
  url: 'https://mysite/swagger.json'
name: myostack
family: openstack-keystone_v2.1
about: http://developer.openstack.org/api-ref.html
zone: public
protocol:
  spec: http
  host: keystone.mysite.com
  port: 443
  tls: true
authentication:
  strategy: oauth2
  username: someuser
  password: somepassword
definition:
  type: swagger
  url: 'https://mysite/swagger.json'
name: myredis
family: redis
about: http://redis.io/documentation
zone: public
protocol:
  spec: redis
  host: redis.mysite.com
  port: 6379
options:
  db: 0
name: mynfs
family: nfs
about: http://nfs.sourceforge.net
zone: public
protocol:
  spec: nfsv4
  host: nfs.mysite.com
  ports: 
    - 111
    - 2049
redis示例

name: myobjstor
family: s3
about: https://aws.amazon.com/documentation/s3
zone: public
protocol:
  spec: http
  host: s3.mysite.com
  port: 443
  tls: true
authentication:
  strategy: oauth2
  username: someuser
  password: somepassword
definition:
  type: swagger
  url: 'https://mysite/swagger.json'
name: myostack
family: openstack-keystone_v2.1
about: http://developer.openstack.org/api-ref.html
zone: public
protocol:
  spec: http
  host: keystone.mysite.com
  port: 443
  tls: true
authentication:
  strategy: oauth2
  username: someuser
  password: somepassword
definition:
  type: swagger
  url: 'https://mysite/swagger.json'
name: myredis
family: redis
about: http://redis.io/documentation
zone: public
protocol:
  spec: redis
  host: redis.mysite.com
  port: 6379
options:
  db: 0
name: mynfs
family: nfs
about: http://nfs.sourceforge.net
zone: public
protocol:
  spec: nfsv4
  host: nfs.mysite.com
  ports: 
    - 111
    - 2049
nfs示例

name: myobjstor
family: s3
about: https://aws.amazon.com/documentation/s3
zone: public
protocol:
  spec: http
  host: s3.mysite.com
  port: 443
  tls: true
authentication:
  strategy: oauth2
  username: someuser
  password: somepassword
definition:
  type: swagger
  url: 'https://mysite/swagger.json'
name: myostack
family: openstack-keystone_v2.1
about: http://developer.openstack.org/api-ref.html
zone: public
protocol:
  spec: http
  host: keystone.mysite.com
  port: 443
  tls: true
authentication:
  strategy: oauth2
  username: someuser
  password: somepassword
definition:
  type: swagger
  url: 'https://mysite/swagger.json'
name: myredis
family: redis
about: http://redis.io/documentation
zone: public
protocol:
  spec: redis
  host: redis.mysite.com
  port: 6379
options:
  db: 0
name: mynfs
family: nfs
about: http://nfs.sourceforge.net
zone: public
protocol:
  spec: nfsv4
  host: nfs.mysite.com
  ports: 
    - 111
    - 2049

有这样的标准吗?

我建议您研究一下“服务发现”

有几种工具使其易于实现,但大多数工具都使用键/值对来描述服务,例如see,但看起来Consor添加了一些可能对您有用的字段

示例领事定义

{
  "service": {
    "name": "redis",
    "tags": ["master"],
    "address": "127.0.0.1",
    "port": 8000,
    "enableTagOverride": false,
    "checks": [
      {
        "script": "/usr/local/bin/check_redis.py",
        "interval": "10s"
      }
    ]
  }
}

我建议您研究一下“服务发现”

有几种工具使其易于实现,但大多数工具都使用键/值对来描述服务,例如see,但看起来Consor添加了一些可能对您有用的字段

示例领事定义

{
  "service": {
    "name": "redis",
    "tags": ["master"],
    "address": "127.0.0.1",
    "port": 8000,
    "enableTagOverride": false,
    "checks": [
      {
        "script": "/usr/local/bin/check_redis.py",
        "interval": "10s"
      }
    ]
  }
}

谁会“消费”这个规范?我可以想象这样一种情况,客户机希望同时访问HTTP服务和具有自定义协议的服务。为什么不为他们提供休息服务呢?这是我所看到的趋势。这将是一个教员在其他要求提供服务的人中的一员。例如,如果客户致电打开postgres服务,则响应将包括端点将在何处使用的信息(ip、端口、协议、身份验证等)。我很好奇的是,是否已经有了这种响应的规范/模式。我们正在围绕一个名为“General puprose service activation handoff definition”的规范进行rfc,谁会“消费”这个规范?我可以想象这样一种情况,客户机希望同时访问HTTP服务和具有自定义协议的服务。为什么不为他们提供休息服务呢?这是我所看到的趋势。这将是一个教员在其他要求提供服务的人中的一员。例如,如果客户致电打开postgres服务,则响应将包括端点将在何处使用的信息(ip、端口、协议、身份验证等)。我很好奇的是,是否已经有了这种响应的规范/模式。我们正在围绕一个名为“通用puprose服务激活切换定义”的规范进行rfc