openapi: 3.0.0 info: title: Polito Faculty Announcements News API version: 0.0.1 license: name: CC BY-NC 4.0 url: https://creativecommons.org/licenses/by-nc/4.0/ servers: - url: https://app.didattica.polito.it/api description: Production server variables: {} - url: https://app.didattica.polito.it/mock/api description: Mock server (uses example data) variables: {} security: - BearerAuth: [] tags: - name: News paths: /news: get: operationId: News_getNews summary: List news | Lista news parameters: [] responses: '200': description: The request has succeeded. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/NewsItemOverview' required: - data '400': description: The server could not understand the request due to invalid syntax. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Server error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' tags: - News /news/{newsItemId}: get: operationId: News_getNewsItem summary: Show news | Mostra news parameters: - name: newsItemId in: path required: true schema: type: number responses: '200': description: The request has succeeded. content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/NewsItem' required: - data '400': description: The server could not understand the request due to invalid syntax. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '500': description: Server error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' tags: - News components: schemas: NewsItemExtra: type: object required: - url - description - type - sizeInKiloBytes properties: url: type: string example: https:// description: type: string example: Bando type: type: string enum: - link - file - image example: image sizeInKiloBytes: type: integer nullable: true example: 305 example: url: https:// description: Bando type: image sizeInKiloBytes: 305 NewsItem: type: object required: - location - htmlContent - extras properties: location: type: string example: Energy Center - Via Paolo Borsellino 38, Torino htmlContent: type: string example: Martedì 18 aprile 2023 - presso l'Auditorium dell'Energy Center del Politecnico... extras: type: array items: $ref: '#/components/schemas/NewsItemExtra' allOf: - $ref: '#/components/schemas/NewsItemOverview' example: id: 123 title: Partecipazione, co-progettazione e impatto sociale. Sfide e opportunità per l'inclusione sociale isEvent: false shortDescription: Seminario di presentazione del progetto eventStartTime: Dal 30 agosto 2023 eventEndTime: Al 30 agosto 2023 createdAt: '2022-08-31T14:00:00Z' location: Energy Center - Via Paolo Borsellino 38, Torino htmlContent: Martedì 18 aprile 2023 - presso l'Auditorium dell'Energy Center del Politecnico... extras: - url: https:// description: Bando type: image sizeInKiloBytes: 305 NewsItemOverview: type: object required: - id - title - isEvent - shortDescription - eventStartTime - eventEndTime - createdAt properties: id: type: number example: 123 title: type: string example: Partecipazione, co-progettazione e impatto sociale. Sfide e opportunità per l'inclusione sociale isEvent: type: boolean example: false shortDescription: type: string example: Seminario di presentazione del progetto eventStartTime: type: string nullable: true example: Dal 30 agosto 2023 eventEndTime: type: string nullable: true example: Al 30 agosto 2023 createdAt: type: string format: date-time example: '2022-08-31T14:00:00Z' example: id: 123 title: Partecipazione, co-progettazione e impatto sociale. Sfide e opportunità per l'inclusione sociale isEvent: false shortDescription: Seminario di presentazione del progetto eventStartTime: Dal 30 agosto 2023 eventEndTime: Al 30 agosto 2023 createdAt: '2022-08-31T14:00:00Z' ErrorResponse: type: object properties: code: type: integer message: type: string securitySchemes: BearerAuth: type: http scheme: Bearer