openapi.yaml 10,7 ko
Newer Older
openapi: 3.0.3
info:
  title: Swagger real-estate-ads - OpenAPI 3.0
  description: |-
    Bienvenue sur notre plateforme d'annonces immobilières, basée sur la spécification OpenAPI 3.0. Vous trouverez ici une variété d'annonces pour des propriétés immobilières, qu'il s'agisse de ventes ou de locations. Notre API est conçue pour faciliter la recherche, la publication et la gestion d'annonces de biens immobiliers.
    Que vous soyez un utilisateur en quête de la maison de vos rêves ou un annonceur cherchant à promouvoir votre propriété, notre API vous offre des fonctionnalités avancées pour simplifier le processus. Vous pouvez contribuer à l'amélioration de notre API en proposant des modifications à la définition ou au code, ce qui nous permettra de continuer à améliorer l'expérience des utilisateurs et d'intégrer de nouvelles fonctionnalités liées à l'immobilier.
    Explorez notre API pour découvrir comment elle peut répondre à vos besoins en matière d'annonces immobilières. Que vous cherchiez à acheter, vendre ou louer une propriété, nous sommes là pour vous simplifier la tâche et rendre votre expérience aussi fluide que possible.
  termsOfService: http://swagger.io/terms/
  contact:
    email: apiteam@swagger.io
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
  version: 1.0.11
externalDocs:
  description: Find out more about Swagger
  url: http://swagger.io
servers:
  - url: http://localhost:8080
tags:
  - name: ad
    description: Everything about your ads
    externalDocs:
      description: Find out more
      url: http://swagger.io
  - name: user
    description: Operations about user
paths:
    post:
      tags:
        - ad
      summary: Add a new ad
      description: Add a new ad to the list
      operationId: addAd
      requestBody:
        description: Create a new ad in the
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Ad'
      responses:
        "200":
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Ad'
        "405":
          description: Invalid input
      security:
        - real-estate-ads_auth:
            - write:ads
            - read:ads
      x-swagger-router-controller: Ad
  /user:
    post:
      tags:
      summary: Create user
      description: This can only be done by the logged in user.
      operationId: createUser
      requestBody:
        description: Created user object
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/User'
          application/xml:
            schema:
              $ref: '#/components/schemas/User'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/User'
      responses:
        default:
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
          application/xml:
            schema:
              $ref: '#/components/schemas/User'
      x-swagger-router-controller: User
  /user/createWithList:
    post:
      tags:
      summary: Creates list of users with given input array
      description: Creates list of users with given input array
      operationId: createUsersWithListInput
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/User'
      responses:
        "200":
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
          application/xml:
            schema:
              $ref: '#/components/schemas/User'
        default:
          description: successful operation
      x-swagger-router-controller: User
  /user/login:
    get:
      tags:
      summary: Logs user into the system
      description: ""
      operationId: loginUser
      parameters:
        - name: username
          in: query
          description: The user name for login
          required: false
          style: form
          explode: true
          schema:
            type: string
        - name: password
          in: query
          description: The password for login in clear text
          required: false
          style: form
          explode: true
          schema:
            type: string
      responses:
        "200":
          description: successful operation
          headers:
            X-Rate-Limit:
              description: calls per hour allowed by the user
              style: simple
              explode: false
              schema:
                type: integer
                format: int32
            X-Expires-After:
              description: date in UTC when token expires
              style: simple
              explode: false
              schema:
                type: string
                format: date-time
          content:
            application/xml:
              schema:
                type: string
                x-content-type: application/xml
          application/json:
            schema:
              type: string
        "400":
          description: Invalid username/password supplied
      x-swagger-router-controller: User
  /user/logout:
    get:
      tags:
      summary: Logs out current logged in user session
      description: ""
      operationId: logoutUser
      parameters: []
      responses:
        default:
          description: successful operation
      x-swagger-router-controller: User
  /user/{username}:
    get:
      tags:
      summary: Get user by user name
      description: ""
      operationId: getUserByName
      parameters:
        - name: username
          in: path
          description: 'The name that needs to be fetched. Use user1 for testing. '
          required: true
          style: simple
          explode: false
          schema:
            type: string
      responses:
        "200":
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
          application/xml:
            schema:
              $ref: '#/components/schemas/User'
        "400":
          description: Invalid username supplied
        "404":
          description: User not found
      x-swagger-router-controller: User
    put:
      tags:
      summary: Update user
      description: This can only be done by the logged in user.
      operationId: updateUser
      parameters:
        - name: username
          in: path
          description: name that need to be deleted
          required: true
          style: simple
          explode: false
          schema:
            type: string
      requestBody:
        description: Update an existent user in the
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/User'
          application/xml:
            schema:
              $ref: '#/components/schemas/User'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/User'
      responses:
        default:
          description: successful operation
      x-swagger-router-controller: User
    delete:
      tags:
      summary: Delete user
      description: This can only be done by the logged in user.
      operationId: deleteUser
      parameters:
        - name: username
          in: path
          description: The name that needs to be deleted
          required: true
          style: simple
          explode: false
          schema:
            type: string
      responses:
        "400":
          description: Invalid username supplied
        "404":
          description: User not found
      x-swagger-router-controller: User
components:
  schemas:
      type: object
      properties:
          type: string
          type: string
          enum:
            - À la vente
            - À la location
        publicationStatus:
          type: string
          enum:
            - Publiée
            - Non publiée
        propertyStatus:
          type: string
          enum:
            - Disponible
            - Loué
            - Vendu
        description:
          type: string
        price:
          type: number
          minimum: 0
        availabilityDate:
          type: string
          format: date-time
        photos:
          type: array
          items:
            type: string
        userName:
          type: string
        questions:
          type: array
          items:
            type: object
            properties:
              user:
                type: string
              question:
                type: string
              answers:
                type: array
                items:
                  type: object
                  properties:
                    answer:
                      type: string
                    date:
                      type: string
                      format: date-time
      required:
        - title
        - propertyType
        - publicationStatus
        - propertyStatus
        - description
        - price
        - availabilityDate
        - userName
    User:
      type: object
      properties:
        id:
          type: integer
          format: int64
        username:
          type: string
        firstName:
          type: string
        lastName:
          type: string
        email:
          type: string
        password:
          type: string
        phone:
          type: string
        userStatus:
          type: integer
          format: int32
    ApiResponse:
      type: object
      properties:
        code:
          type: integer
          format: int32
        type:
          type: string
        message:
          type: string
      example:
        code: 0
        type: type
        message: message
      xml:
        name: '##default'
  requestBodies:
    UserArray:
      description: List of user object
      content:
        application/json:
          schema:
            type: array
            items:
              $ref: '#/components/schemas/User'
  securitySchemes:
    real-estate-ads_auth:
      type: oauth2
      flows:
        implicit:
          authorizationUrl: https://real-estate-ads3.swagger.io/oauth/authorize
          scopes:
            write:pets: modify pets in your account
            read:pets: read your pets
    api_key:
      type: apiKey
      name: api_key
      in: header