Ajout Swagger
This commit is contained in:
		
							
								
								
									
										97
									
								
								server/package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										97
									
								
								server/package-lock.json
									
									
									
										generated
									
									
									
								
							@@ -12,10 +12,12 @@
 | 
			
		||||
        "@nestjs/common": "^10.0.0",
 | 
			
		||||
        "@nestjs/core": "^10.0.0",
 | 
			
		||||
        "@nestjs/platform-express": "^10.0.0",
 | 
			
		||||
        "@nestjs/swagger": "^8.1.0",
 | 
			
		||||
        "@prisma/client": "^6.0.1",
 | 
			
		||||
        "prisma": "^6.0.1",
 | 
			
		||||
        "reflect-metadata": "^0.2.0",
 | 
			
		||||
        "rxjs": "^7.8.1"
 | 
			
		||||
        "rxjs": "^7.8.1",
 | 
			
		||||
        "swagger-ui-express": "^5.0.1"
 | 
			
		||||
      },
 | 
			
		||||
      "devDependencies": {
 | 
			
		||||
        "@nestjs/cli": "^10.0.0",
 | 
			
		||||
@@ -1563,6 +1565,12 @@
 | 
			
		||||
        "node": ">=8"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@microsoft/tsdoc": {
 | 
			
		||||
      "version": "0.15.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.15.1.tgz",
 | 
			
		||||
      "integrity": "sha512-4aErSrCR/On/e5G2hDP0wjooqDdauzEbIq8hIkIe5pXV0rtWJZvdCEKL0ykZxex+IxIwBp0eGeV48hQN07dXtw==",
 | 
			
		||||
      "license": "MIT"
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@nestjs/cli": {
 | 
			
		||||
      "version": "10.4.8",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@nestjs/cli/-/cli-10.4.8.tgz",
 | 
			
		||||
@@ -1690,6 +1698,26 @@
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@nestjs/mapped-types": {
 | 
			
		||||
      "version": "2.0.6",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@nestjs/mapped-types/-/mapped-types-2.0.6.tgz",
 | 
			
		||||
      "integrity": "sha512-84ze+CPfp1OWdpRi1/lOu59hOhTz38eVzJvRKrg9ykRFwDz+XleKfMsG0gUqNZYFa6v53XYzeD+xItt8uDW7NQ==",
 | 
			
		||||
      "license": "MIT",
 | 
			
		||||
      "peerDependencies": {
 | 
			
		||||
        "@nestjs/common": "^8.0.0 || ^9.0.0 || ^10.0.0",
 | 
			
		||||
        "class-transformer": "^0.4.0 || ^0.5.0",
 | 
			
		||||
        "class-validator": "^0.13.0 || ^0.14.0",
 | 
			
		||||
        "reflect-metadata": "^0.1.12 || ^0.2.0"
 | 
			
		||||
      },
 | 
			
		||||
      "peerDependenciesMeta": {
 | 
			
		||||
        "class-transformer": {
 | 
			
		||||
          "optional": true
 | 
			
		||||
        },
 | 
			
		||||
        "class-validator": {
 | 
			
		||||
          "optional": true
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@nestjs/platform-express": {
 | 
			
		||||
      "version": "10.4.12",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@nestjs/platform-express/-/platform-express-10.4.12.tgz",
 | 
			
		||||
@@ -1735,6 +1763,39 @@
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "license": "MIT"
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@nestjs/swagger": {
 | 
			
		||||
      "version": "8.1.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@nestjs/swagger/-/swagger-8.1.0.tgz",
 | 
			
		||||
      "integrity": "sha512-8hzH+r/31XshzXHC9vww4T0xjDAxMzvOaT1xAOvvY1LtXTWyNRCUP2iQsCYJOnnMrR+vydWjvRZiuB3hdvaHxA==",
 | 
			
		||||
      "license": "MIT",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@microsoft/tsdoc": "^0.15.0",
 | 
			
		||||
        "@nestjs/mapped-types": "2.0.6",
 | 
			
		||||
        "js-yaml": "4.1.0",
 | 
			
		||||
        "lodash": "4.17.21",
 | 
			
		||||
        "path-to-regexp": "3.3.0",
 | 
			
		||||
        "swagger-ui-dist": "5.18.2"
 | 
			
		||||
      },
 | 
			
		||||
      "peerDependencies": {
 | 
			
		||||
        "@fastify/static": "^6.0.0 || ^7.0.0",
 | 
			
		||||
        "@nestjs/common": "^9.0.0 || ^10.0.0",
 | 
			
		||||
        "@nestjs/core": "^9.0.0 || ^10.0.0",
 | 
			
		||||
        "class-transformer": "*",
 | 
			
		||||
        "class-validator": "*",
 | 
			
		||||
        "reflect-metadata": "^0.1.12 || ^0.2.0"
 | 
			
		||||
      },
 | 
			
		||||
      "peerDependenciesMeta": {
 | 
			
		||||
        "@fastify/static": {
 | 
			
		||||
          "optional": true
 | 
			
		||||
        },
 | 
			
		||||
        "class-transformer": {
 | 
			
		||||
          "optional": true
 | 
			
		||||
        },
 | 
			
		||||
        "class-validator": {
 | 
			
		||||
          "optional": true
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@nestjs/testing": {
 | 
			
		||||
      "version": "10.4.12",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@nestjs/testing/-/testing-10.4.12.tgz",
 | 
			
		||||
@@ -1906,6 +1967,13 @@
 | 
			
		||||
        "@prisma/debug": "6.0.1"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@scarf/scarf": {
 | 
			
		||||
      "version": "1.4.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@scarf/scarf/-/scarf-1.4.0.tgz",
 | 
			
		||||
      "integrity": "sha512-xxeapPiUXdZAE3che6f3xogoJPeZgig6omHEy1rIY5WVsB3H2BHNnZH+gHG6x91SCWyQCzWGsuL2Hh3ClO5/qQ==",
 | 
			
		||||
      "hasInstallScript": true,
 | 
			
		||||
      "license": "Apache-2.0"
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/@sinclair/typebox": {
 | 
			
		||||
      "version": "0.27.8",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz",
 | 
			
		||||
@@ -2845,7 +2913,6 @@
 | 
			
		||||
      "version": "2.0.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
 | 
			
		||||
      "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "license": "Python-2.0"
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/array-flatten": {
 | 
			
		||||
@@ -6285,7 +6352,6 @@
 | 
			
		||||
      "version": "4.1.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
 | 
			
		||||
      "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "license": "MIT",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "argparse": "^2.0.1"
 | 
			
		||||
@@ -6449,7 +6515,6 @@
 | 
			
		||||
      "version": "4.17.21",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
 | 
			
		||||
      "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
 | 
			
		||||
      "dev": true,
 | 
			
		||||
      "license": "MIT"
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/lodash.memoize": {
 | 
			
		||||
@@ -8263,6 +8328,30 @@
 | 
			
		||||
        "url": "https://github.com/sponsors/ljharb"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/swagger-ui-dist": {
 | 
			
		||||
      "version": "5.18.2",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-5.18.2.tgz",
 | 
			
		||||
      "integrity": "sha512-J+y4mCw/zXh1FOj5wGJvnAajq6XgHOyywsa9yITmwxIlJbMqITq3gYRZHaeqLVH/eV/HOPphE6NjF+nbSNC5Zw==",
 | 
			
		||||
      "license": "Apache-2.0",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "@scarf/scarf": "=1.4.0"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/swagger-ui-express": {
 | 
			
		||||
      "version": "5.0.1",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/swagger-ui-express/-/swagger-ui-express-5.0.1.tgz",
 | 
			
		||||
      "integrity": "sha512-SrNU3RiBGTLLmFU8GIJdOdanJTl4TOmT27tt3bWWHppqYmAZ6IDuEuBvMU6nZq0zLEe6b/1rACXCgLZqO6ZfrA==",
 | 
			
		||||
      "license": "MIT",
 | 
			
		||||
      "dependencies": {
 | 
			
		||||
        "swagger-ui-dist": ">=5.0.0"
 | 
			
		||||
      },
 | 
			
		||||
      "engines": {
 | 
			
		||||
        "node": ">= v0.10.32"
 | 
			
		||||
      },
 | 
			
		||||
      "peerDependencies": {
 | 
			
		||||
        "express": ">=4.0.0 || >=5.0.0-beta"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "node_modules/symbol-observable": {
 | 
			
		||||
      "version": "4.0.0",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz",
 | 
			
		||||
 
 | 
			
		||||
@@ -23,10 +23,12 @@
 | 
			
		||||
    "@nestjs/common": "^10.0.0",
 | 
			
		||||
    "@nestjs/core": "^10.0.0",
 | 
			
		||||
    "@nestjs/platform-express": "^10.0.0",
 | 
			
		||||
    "@nestjs/swagger": "^8.1.0",
 | 
			
		||||
    "@prisma/client": "^6.0.1",
 | 
			
		||||
    "prisma": "^6.0.1",
 | 
			
		||||
    "reflect-metadata": "^0.2.0",
 | 
			
		||||
    "rxjs": "^7.8.1"
 | 
			
		||||
    "rxjs": "^7.8.1",
 | 
			
		||||
    "swagger-ui-express": "^5.0.1"
 | 
			
		||||
  },
 | 
			
		||||
  "devDependencies": {
 | 
			
		||||
    "@nestjs/cli": "^10.0.0",
 | 
			
		||||
 
 | 
			
		||||
@@ -1,22 +0,0 @@
 | 
			
		||||
import { Test, TestingModule } from '@nestjs/testing'
 | 
			
		||||
import { AppController } from './app.controller'
 | 
			
		||||
import { AppService } from './app.service'
 | 
			
		||||
 | 
			
		||||
describe('AppController', () => {
 | 
			
		||||
  let appController: AppController
 | 
			
		||||
 | 
			
		||||
  beforeEach(async () => {
 | 
			
		||||
    const app: TestingModule = await Test.createTestingModule({
 | 
			
		||||
      controllers: [AppController],
 | 
			
		||||
      providers: [AppService],
 | 
			
		||||
    }).compile()
 | 
			
		||||
 | 
			
		||||
    appController = app.get<AppController>(AppController)
 | 
			
		||||
  })
 | 
			
		||||
 | 
			
		||||
  describe('root', () => {
 | 
			
		||||
    it('should return "Hello World!"', () => {
 | 
			
		||||
      expect(appController.getHello()).toBe('Hello World!')
 | 
			
		||||
    })
 | 
			
		||||
  })
 | 
			
		||||
})
 | 
			
		||||
@@ -1,12 +0,0 @@
 | 
			
		||||
import { Controller, Get } from '@nestjs/common'
 | 
			
		||||
import { AppService } from './app.service'
 | 
			
		||||
 | 
			
		||||
@Controller()
 | 
			
		||||
export class AppController {
 | 
			
		||||
  constructor(private readonly appService: AppService) {}
 | 
			
		||||
 | 
			
		||||
  @Get()
 | 
			
		||||
  getHello(): string {
 | 
			
		||||
    return this.appService.getHello()
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,11 +1,9 @@
 | 
			
		||||
import { Module } from '@nestjs/common'
 | 
			
		||||
import { AppController } from './app.controller'
 | 
			
		||||
import { AppService } from './app.service'
 | 
			
		||||
import { PrismaService } from './prisma/prisma.service'
 | 
			
		||||
import { PrismaModule } from './prisma/prisma.module'
 | 
			
		||||
 | 
			
		||||
@Module({
 | 
			
		||||
  imports: [],
 | 
			
		||||
  controllers: [AppController],
 | 
			
		||||
  providers: [AppService, PrismaService],
 | 
			
		||||
  imports: [PrismaModule],
 | 
			
		||||
  providers: [PrismaService],
 | 
			
		||||
})
 | 
			
		||||
export class AppModule {}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +0,0 @@
 | 
			
		||||
import { Injectable } from '@nestjs/common'
 | 
			
		||||
 | 
			
		||||
@Injectable()
 | 
			
		||||
export class AppService {
 | 
			
		||||
  getHello(): string {
 | 
			
		||||
    return 'Hello World!'
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,8 +1,17 @@
 | 
			
		||||
import { NestFactory } from '@nestjs/core'
 | 
			
		||||
import { AppModule } from './app.module'
 | 
			
		||||
import { DocumentBuilder, SwaggerModule } from '@nestjs/swagger'
 | 
			
		||||
 | 
			
		||||
async function bootstrap() {
 | 
			
		||||
  const app = await NestFactory.create(AppModule)
 | 
			
		||||
  const config = new DocumentBuilder()
 | 
			
		||||
    .setTitle('Traintrape-moi')
 | 
			
		||||
    .setDescription('API permettant de stocker les données de Traintrape-moi')
 | 
			
		||||
    .setVersion('1.0')
 | 
			
		||||
    .build()
 | 
			
		||||
  const document = SwaggerModule.createDocument(app, config)
 | 
			
		||||
 | 
			
		||||
  SwaggerModule.setup('', app, document);
 | 
			
		||||
  await app.listen(process.env.PORT ?? 3000)
 | 
			
		||||
}
 | 
			
		||||
bootstrap()
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										8
									
								
								server/src/prisma/prisma.module.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								server/src/prisma/prisma.module.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,8 @@
 | 
			
		||||
import { Module } from '@nestjs/common'
 | 
			
		||||
import { PrismaService } from './prisma.service'
 | 
			
		||||
 | 
			
		||||
@Module({
 | 
			
		||||
    providers: [PrismaService],
 | 
			
		||||
    exports: [PrismaService],
 | 
			
		||||
  })
 | 
			
		||||
export class PrismaModule {}
 | 
			
		||||
		Reference in New Issue
	
	Block a user