2016-04-25 7 views
1

Ich habe dieses Problem, ich zwei Bibliotheken erstellt haben zwei verschiedene Typen zu definieren, hier sind sie:RAML 1.0 ciclical verschachtelt enthält

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

Damit ist es sinnvoll, einen Konflikt zu haben. Ich bin ziemlich vertraut mit RAML, also habe ich irgendwo gelesen, dass "uses" nur benutzt werden sollte, wenn etwas als Parent verwendet wird, aber was sollte ich tun, um nicht alles überall in meinem Projekt neu zu schreiben (weil das überall passiert)).

Ich habe darüber nachgedacht, die Basis der Typen in einer Datei zu definieren, aber es wäre nur eine Mischung von Informationen, die nicht zusammen sein sollten, ich möchte wissen, ob es eine Alternative zu "verwendet" zur Wiederverwendung gibt die Typen in einer anderen Datei.

Vielen Dank im Voraus.

Antwort

1

Die einfachste Lösung ist machen:

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

Sie werden nicht zirkuläre Abhängigkeiten haben.

+0

Ich war am Ende zu der gleichen Schlussfolgerung gekommen, ich wollte nur nicht mehr Dateien als nötig erstellen, aber ich denke, das ist der richtige Weg. – 8370