Bepoz
파즈의 공부 일기
Bepoz
전체 방문자
오늘
어제
  • 분류 전체보기 (232)
    • 공부 기록들 (85)
      • 우테코 (17)
    • Spring (85)
    • Java (43)
    • Infra (17)
    • 책 정리 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Bepoz

파즈의 공부 일기

공부 기록들

2020.02.25-28 백엔드 공부(8)

2020. 2. 28. 18:12

var express=require('express')
var app=express()
var router=express.Router()

router.get('/', function(req, res){
  console.log('logout js');
  req.logout();
  res.redirect('/login');
});

module.exports=router;  

 

로그아웃이다. 

 

 

RESTful API

 

REST한 방식의 API라는 건, 아래처럼 잘 설계된 API를 말한다.

1. 웹을 근간으로 하는 HTTP Protocol 기반이다.

2. 리소스(자원)는 URI 로 표현하며 말 그대로 '고유'해야 한다.

3. URI는 단순하고 직관적인 구조이어야 한다.

4. 리소스의 상태는 HTTP Methods 를 활용해서 구분한다.

5. xml/json을 활용해서 데이터를 전송한다. (주로 json)

 

API Design

1. 복수명사를 사용(/movies)

2.필요하면 URL에 하위 자원으로 표현 (/movies/23)

3. 필터조건을 허용할 수 있음 (/movies?state=active)

 

Example

 

URL METHODS 설명
/movies get 모든 영화리스트 가져오기
/movies post 영화 추가
/movies/:title get title 해당 영화 가져오기
/movies/:title delete title 해당 영화 삭제
/movies/:title put title 해당 영화 업데이트
/movies?min=9 get 상영중인 영화리스트

 

 

create table 테이블이름(

컬럼이름 컬럼값,

상동

) 

 

순

create table movie (id int not null auto_increment primary key , 
title char(20) not null) 

 

insert into 테이블명 values(모든 col);

insert into 테이블명(col 리스트) values(그 col);

 

delete from 테이블명 조건;

 

auto_increment 값 초기화

alter table 테이블명 auto_increment=1;

 

이미 생성한 테이블 컬럼에 자동증가 옵션을 추가해주고 싶을 때에는

alter table 테이블명 modify 컬럼명 int not null auto_increment;

 

nodejs 에서 하는데 insert into 테이블명 set? , sql, function(req,res) 이런식으로 하는데 cmd로 테이블 명 옆에 col 리스트와 values 로 그 col 리스트만 적어줄떄와는 다르게 잘 들어가더라.

 

 


// 1.  /movie , GET
router.get('/',function(req,res){
  var responseData={};

  var query=connection.query('select title from movie',function(err,rows){
    if(err) throw(err);
    if(rows[0]){
      responseData.result=1;
      responseData.data=rows;
    }else {
      responseData.result=0;
    }
    res.json(responseData);
  })
})

// 2. /movie, POST
router.post('/',function(req,res){
  var title=req.body.title;
  var type=req.body.type;
  var grade=req.body.grade;
  var actor=req.body.actor;

  var sql={title,type,grade,actor};
  var query=connection.query('insert into movie set?',sql,function(err,rows){
    if(err) throw err
    return res.json({'result':1});
  })
})

// 3. /movie/:title, GET
router.get('/:title',function(req,res){
  var title=req.params.title;
  console.log("title => ",title);
  var responseData={};

  var query=connection.query('select * from movie where title=?',[title],function(err,rows){
    if(err) throw(err);
    if(rows[0]){
      responseData.result=1;
      responseData.data=rows;
    }else {
      responseData.result=0;
    }
    res.json(responseData);
  })
})

// 4. /movie/:title, DELETE
router.delete('/:title',function(req,res){
  var title=req.params.title;
  console.log("title => ",title);
  var responseData={};

  var query=connection.query('delete  from movie where title=?',[title],function(err,rows){
    if(err) throw(err);
    if(rows.affectedRows>0){
      responseData.result=1;
      responseData.data=title;
    }else {
      responseData.result=0;
    }
    res.json(responseData);
  })
})

'공부 기록들' 카테고리의 다른 글

2020.03.11 JSP(2)  (0) 2020.03.11
2020.03.10 JSP (1)  (0) 2020.03.10
2020.02.19 백엔드 공부 (7)  (0) 2020.02.19
2020.02.14 & 02.17 백엔드 공부(5),(6)  (0) 2020.02.18
2020. 02. 10 백엔드 공부(4)  (0) 2020.02.10
    '공부 기록들' 카테고리의 다른 글
    • 2020.03.11 JSP(2)
    • 2020.03.10 JSP (1)
    • 2020.02.19 백엔드 공부 (7)
    • 2020.02.14 & 02.17 백엔드 공부(5),(6)
    Bepoz
    Bepoz
    https://github.com/Be-poz/TIL

    티스토리툴바