Rest RAML 1.0循环嵌套包括

Rest RAML 1.0循环嵌套包括,rest,raml,Rest,Raml,我有这个问题,我创建了两个库来定义两种不同的类型,它们是: 类别.raml 拉梅尔先生 有了这一点,就有了冲突。我对RAML非常了解,所以我在某个地方读到,“uses”只应该在使用某个对象作为父对象时使用,但是我应该怎么做才能不在我的项目中的任何地方重写所有内容(因为这在项目中的任何地方都会发生) 我曾想过在一个文件中定义类型的基础,但这只是一个不应该放在一起的混合信息,我想知道是否有替代“使用”的方法来重用另一个文件中的类型 提前感谢。最简单的解决方案是: TournamentBase.ra

我有这个问题,我创建了两个库来定义两种不同的类型,它们是:

类别.raml 拉梅尔先生 有了这一点,就有了冲突。我对RAML非常了解,所以我在某个地方读到,“uses”只应该在使用某个对象作为父对象时使用,但是我应该怎么做才能不在我的项目中的任何地方重写所有内容(因为这在项目中的任何地方都会发生)

我曾想过在一个文件中定义类型的基础,但这只是一个不应该放在一起的混合信息,我想知道是否有替代“使用”的方法来重用另一个文件中的类型


提前感谢。

最简单的解决方案是:

  • TournamentBase.raml
  • TournamentFull.raml
  • 分类基
  • 类别full.raml

您将不会有循环依赖。

我在最后得出了相同的结论,我只是不想创建超出需要的文件,但我想这是正确的方法。
#%RAML 1.0 Library
uses:
  - Event: !include Event.raml
  - Tournament: !include Tournament.raml

types:
#############################################################################
    base:
    usage: The base type for a category
    properties:
      min_age:
        description: The minimum age to participate in the category
        required: true
        type: number
      max_age:
        description: The maximum age to participate in the category
        required: true
        type: number
      name:
        description: The name of the category
        required: true
        type: string
      gender:
        description: The gender of the category
        required: true
        enum:
          - male
          - female
          - mix
      tournament:
        description: The tournament of the category
        required: true
        type: Tournament.base
  #############################################################################
  full:
    usage: A category with all of its events
    type: base
    properties:
      events:
        description: The events that the category contains
        required: true
        type: Event.base[]
#%RAML 1.0 Library
uses:
  - ClubInscription:  !include Club.raml
  - Category:         !include Category.raml

types:
  #############################################################################
  base:
    usage: The base type for the tournament
    properties:
      name:
        description: The name of the tournament
        required: true
        type: string
      date:
        description: Date of the tournament
        required: true
        type: string
      available_lanes:
        description: Maximum number of lanes in a serie
        required: true
        type: number
      max_swimmer_inscriptions:
        description: Maximum number of events a swimmer may be inscripted
        required: true
        type: number
      award_type:
        description: The type of awarding used in the competition
        required: true
        enum:
          - points
          - medals
          - none
      state:
        description: The current state of the tournament
        required: true
        enum:
          - closed
          - open
          - finished
  #############################################################################
  full:
    usage: A tournament with all its categories and club inscriptions
    type: base
    properties:
      club_inscriptions:
        description: The clubs inscripted in the tournament
        required: true
        type: ClubInscription.base[]
      categories:
        description: The categories the tournament has
        required: true
        type: Category.base[]