Rest Api

Rest Api에 대해서 웹 쪽 관련해서 취업할때 상당히 많이 요구 사항에 들어가있다 

Rest Api가 뭘까요?

Rest는 Representational State Transfer의 줄인말이다

즉 번역해보면 '대표 상태 이전' 이게 무슨말인지 감도 안온다.

쉽게 위키를 보면 

현실적으로 온라인 '네트워크'의 지분 중 태반을 차지하는게 월드 와이드 웹이기 때문에 '웹' 기반의 전송을 위해 쓰이는 경우가 대부분이다. 태생 자체가 데이터 송수신에 최적화 되어 있다보니 이를 위한 웹 API 쪽에서 굉장히 많이 쓰인다. 이를 'REST API'라고 부르는데, 이제는 그냥 '웹 API'와 동일하다고 볼 수 있을 정도로 보편화되었다.

 -위키-

즉 웹개발에서 HTTP기반의 웹 API를 구현하면 그건  Rest를 준수한다고 생각하면된다.

좀더 쉽게 말하면 네트워크 웹 구조 설계를 의미한다. 

그렇다면 Rest Api의 조건은 뭘까 ?

이것도 위키에서 빌려오겠다.

Client-Server

가장 심플하며 프로그래밍에서 네트워크 통신의 기본중에 기본 즉 서버와 클라이언트 관계이다. 

Stateless

상태 정보를 따로 저장하지않고 다수의 이용자가 어디서든 접근해도 관계없이 동일한 결과를 얻는것이다.

이것도 네이버,다음 같은 웹도 다수의 사람들이 여러곳에서 접근해도 변하지않고 동일한 웹사이트를 보여준다.

Cache

 Http를 비롯한 네트워크 프로토콜에서 제공하는 케싱 기능을 적용한다.

케시는 말그대로 빠르게 데이터를 가지고 오는 역활을 하는데 일반적으로 이미지 같은것들이나 반복적인 작업이 보여주는것들은 Cache를 사용한다.

Uniform Interface

데이터가 표준 형식으로 전송될수 있도록 구성 요소 간 통합 인터페이스이다. 

(이부분은 조금 추후에 설명하도록 하겠다 이걸 설명하려면 일단 좀 길어져서 다음에 설명하도록 하겠다)

Self-descriptiveness

API를 통해 전송되는 내용은 별도 문서 없이 쉽게 이해할 수 있도록 자체 표현 구조를 지녀야 한다.

쉽게 설명하면 JSON,XML이라고 생각하면 좋을것같다.

JSON,XML은 말그대로 클라이언트에 데이터를 보내는 양식이다.

 

이런구조라고 가볍게 넘어가자 혹시나 틀리부분이 있다면 지적해주면 정말로 감사합니다. 

 

 

' > Spring' 카테고리의 다른 글

spring 어노테이션01  (0) 2022.07.09
spring gradle junit4->junit5 설정  (0) 2022.07.03
assertThat의 경우 junit5에서 바로 지정되지 않는 이유가 발생!  (0) 2022.06.30
<Spring>Entity  (0) 2020.12.14
<Spring>JPA  (0) 2020.12.14

assertThat의 경우 junit5에서 바로 지정되지 않아서 

import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.core.Is.is;

위의 라이브러리를 추가해줘서 사용하면된다.

' > Spring' 카테고리의 다른 글

spring gradle junit4->junit5 설정  (0) 2022.07.03
Rest Api 란?  (0) 2022.07.01
<Spring>Entity  (0) 2020.12.14
<Spring>JPA  (0) 2020.12.14
<Spring>Lombok?  (0) 2020.12.14

 

귀엽죵 
흐~ 회사다니면서 1시간이상 공부하기 힘드네요 ㅎㅎ 

' > Vue' 카테고리의 다른 글

Vue Mouse 포인터 커스텀  (0) 2022.10.10
Vue Slider  (1) 2022.10.05
웹 공부1  (0) 2022.06.07

스프링 공부겸
일단 앞은 그대로 가져오고 
 css같은 경우에는 귀찮으니 네이버에 있는거 그대로 사용할 예정이다 ㅎㅎ 
일단 검색란 로고 완료

' > Vue' 카테고리의 다른 글

Vue Mouse 포인터 커스텀  (0) 2022.10.10
Vue Slider  (1) 2022.10.05
웹 공부02  (0) 2022.06.09

Camel Case: 단어를 표기할때 첫문자는 소문자로 시작하며 띄어쓰기 대신 단어를 구분 자바의 변수선언할때 camelCase로 선언한다.

ex)phoneNumber,CreatedAt .. .

Snake Case 단어를 표기할때 모두 소문자 표기하며, 띄어쓰기는 (_)로 표기 DB 컬럼에 사용

ex) phone_number,created_at 

API를 정의하기에 따라 다르지만 주로 API 통신 규격에는 구간에서 Snake Case 를 많이 사용합니다.

 

Entity: JPA에서는 테이블을 자동으로 생성해주는 기능존재

DB Table==JPA Entity

Annotation 용도
@Entity 해당 클래스가  Entity임을 명시
@Table 실제 DB 테이블의 이름을 명시
@Id Index Primay Key 명시
@Column 실제 DB Column의 이름을 명시
@GeneratedValue Primary key 식별키의 전략 설정

 

' > Spring' 카테고리의 다른 글

Rest Api 란?  (0) 2022.07.01
assertThat의 경우 junit5에서 바로 지정되지 않는 이유가 발생!  (0) 2022.06.30
<Spring>JPA  (0) 2020.12.14
<Spring>Lombok?  (0) 2020.12.14
<Spring>Post Method  (0) 2020.12.14

JPA

ORM(Object Relational Mapping)으로 RDB데이터 베이스의 정보를 객체지향으로 손쉽게 활용할수 있도록 도와주는 도구이다.

 

Object(자바객체)와 Relation(관계형 데이터베이스) 둘간의 맵핑을 통해서 보다 손쉽게 적용할수 있는 기술을 제공해준다

 

또한 쿼리에 집중하기보다는 객체에 집중함으로써 조금더 프로그래밍 적으로 많이 활용할수 있다.

 

' > Spring' 카테고리의 다른 글

assertThat의 경우 junit5에서 바로 지정되지 않는 이유가 발생!  (0) 2022.06.30
<Spring>Entity  (0) 2020.12.14
<Spring>Lombok?  (0) 2020.12.14
<Spring>Post Method  (0) 2020.12.14
<Spring>HTTP  (0) 2020.12.14

Lombok이란?

클래스 생성시 생기는 생성자나 클래스내에 private 맴버변수에 getter와 setter와 중복되는 코드를 생략해주것이라고 합니다.

' > Spring' 카테고리의 다른 글

<Spring>Entity  (0) 2020.12.14
<Spring>JPA  (0) 2020.12.14
<Spring>Post Method  (0) 2020.12.14
<Spring>HTTP  (0) 2020.12.14
<Spring>통신이란?  (0) 2020.12.14

Post Method

주소 창에 파라미터가 노출되지 않는다

주소 창에 사용자의 요청 사항이 노출 되지 않는다

Get 방식에서는 주소길이 제한이  있지만 POST는 그보다 길게 사용가능(제한존재)'

브라우저가 주소캐시를 하지 못하는 특성이 있다.

 

Rest API

HTTP-PUT/PACTH Method

Post와 마찬가지로 Body에 데이터가 들어 있으며 ,주로 업데이트에 사용한다.

 

Rest의 개념

-HTTP 프로토콜에 있는 Method를 활요한 아키텍쳐 스타일이다.

-HTTP Method를 통해서 Resource를 처리한다.

-CRUD를 통한 Resource 조작을 할때 사용한다.

Http Method 동작 URL 형태
GET 조회(SELECT*READ) /user/{id}
POST 생성(CREATE) /user
PUT 수정(UPDATE)*CREATE /user
DELETE 삭제(DELETE) /user/{1}
package com.example.study.controller;

import com.example.study.model.SearchParam;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/api")//주소
public class PostController {


    //json,xml, mutlpart-fomr /textplain
    //@RequestMapping(method = RequestMethod.POST,path="/postMethod")
    @PostMapping("/postMethod") //post 방식 지정
    public SearchParam postMethod(@RequestBody SearchParam searchParam){



        return searchParam;
    }

    @PutMapping("/putMethod")
    public void put(){

    }

    @PatchMapping("/PatchMapping")
    public  void patch(){

    }

}

' > Spring' 카테고리의 다른 글

<Spring>JPA  (0) 2020.12.14
<Spring>Lombok?  (0) 2020.12.14
<Spring>HTTP  (0) 2020.12.14
<Spring>통신이란?  (0) 2020.12.14
Spring 들어가기 전에..  (0) 2019.11.12

+ Recent posts