2016-04-25 60 views
1

我有这个问题,我已经创建了两个库定义两个不同的类型,在这里,他们是:RAML 1.0 ciclical嵌套包含

Category.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[] 

Tournament.raml

#%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[] 

有了这个,它是有道理的有冲突。我对RAML非常了解,所以我在某处读到“使用”应该只在使用某些东西作为父项时才会使用,但是我应该怎么做才能在我的项目中无处不在地重写所有内容(因为这发生在任何地方)。

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

在此先感谢。

回答

1

最简单的办法是让:

  • TournamentBase.raml
  • TournamentFull.raml
  • CategoryBase.raml
  • CategoryFull.raml

你不会有循环依赖。

+0

我在最后得出了同样的结论,我只是不想创建更多的文件,但我想这是正确的方法。 – 8370