Евгений Колесников vor 3 Jahren
Ursprung
Commit
e110b86cfa
4 geänderte Dateien mit 26 neuen und 5 gelöschten Zeilen
  1. 2 2
      articles/f6_demo_1.md
  2. 9 3
      cinema/index.js
  3. 14 0
      cinema/package-lock.json
  4. 1 0
      cinema/package.json

+ 2 - 2
articles/f6_demo_1.md

@@ -96,7 +96,7 @@
 >Необходимо строго следовать предложенному дизайну. Макеты приложения доступны по ссылке:
 https://www.figma.com/file/tD64TlCMQEqlr8OTv6bW2o/KOD1.4-Variant3?node-id=0%3A1 
 >
->~~Во время работы не будет доступа в Интернет,~~ кроме документации и API. Описание протокола API доступно по ссылке: https://app.swaggerhub.com/apis-docs/WorldSkills-MAD/WorldCinema/1.0.0 
+>~~Во время работы не будет доступа в Интернет,~~ кроме документации и API. Описание протокола API доступно по ссылке: ~~https://app.swaggerhub.com/apis-docs/WorldSkills-MAD/WorldCinema/1.0.0~~ (так как АПИ на момент написания этих лекций не доступно, то я нарисовал своё АПИ и Swagger для него лежит по адресу http://swagger.kolei.ru)
 
 >Проект приложения должен быть структурирован по экранам, то есть исходные файлы конкретного экрана должны быть в соответствующей папке. Общие для нескольких экранов классы необходимо поместить в папку common.
 
@@ -228,7 +228,7 @@ override fun onCreate(savedInstanceState: Bundle?) {
 
 **Swagger** - это фреймворк для спецификации *RESTful API*. Его прелесть заключается в том, что он дает возможность не только интерактивно просматривать спецификацию, но и отправлять запросы.
 
-Открываем [ссылку](https://app.swaggerhub.com/apis-docs/WorldSkills-MAD/WorldCinema/1.0.0) на описание протокола АПИ и смотрим что там есть:
+Открываем [ссылку](http://swagger.kolei.ru) на описание протокола АПИ и смотрим что там есть:
 
 ![](../img/f6_005.png)
 

+ 9 - 3
cinema/index.js

@@ -1,6 +1,9 @@
 'use strict'
 
 const express = require('express')
+var cors = require('cors')
+
+
 
 //добавляю к консольному выводу дату и время
 function console_log(fmt, ...aparams){
@@ -47,7 +50,8 @@ function findUserByToken(token) {
   return null
 }
 
-app.post('/auth/register', (req,res)=>{
+app.options('/auth/register', cors())
+app.post('/auth/register', cors(), (req,res)=>{
   try {
     // if(req.headers.token==undefined) 
     //   throw new Error("В заголовке запроса нет токена")
@@ -86,7 +90,8 @@ app.post('/auth/register', (req,res)=>{
   res.end()
 })
 
-app.post('/auth/login', (req,res)=>{
+app.options('/auth/login', cors())
+app.post('/auth/login', cors(), (req,res)=>{
   try {
     if(req.body.email==undefined) 
       throw new Error('Not found "email" param')
@@ -108,7 +113,8 @@ app.post('/auth/login', (req,res)=>{
   res.end()
 })
 
-app.get('/movies', (req,res)=>{
+app.options('/movies', cors())
+app.get('/movies', cors(), (req,res)=>{
   try {
     if (typeof req.query.filter == 'undefined')
       throw new Error('Filter is required parameter')

+ 14 - 0
cinema/package-lock.json

@@ -74,6 +74,15 @@
       "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
       "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
     },
+    "cors": {
+      "version": "2.8.5",
+      "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
+      "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
+      "requires": {
+        "object-assign": "^4",
+        "vary": "^1"
+      }
+    },
     "debug": {
       "version": "2.6.9",
       "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
@@ -275,6 +284,11 @@
       "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
       "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg=="
     },
+    "object-assign": {
+      "version": "4.1.1",
+      "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+      "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="
+    },
     "object-inspect": {
       "version": "1.12.2",
       "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz",

+ 1 - 0
cinema/package.json

@@ -9,6 +9,7 @@
   "author": "kei",
   "license": "ISC",
   "dependencies": {
+    "cors": "^2.8.5",
     "express": "^4.18.2"
   }
 }