ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • API 와 오픈 API
    프로젝트 2022. 11. 22. 15:22

    새로운 프로젝트를 시작하는데, 다음 할 일은 api 명세서 작성이었다

    국비 교육에서의 프로젝트 때는 모든 환경이 동일하게 설정되어 있어서 그랬는지

    api, db 등등 모든 환경 설정에 대한 회의가 필요 없었다

     

    api 명세서 작성합시다 > 무슨 말이지? 왜 api 명세가 필요하지 이렇게 되었다

    그 과정에서 오픈 api와 또 헷갈리기 시작했고 이번을 기회로 정리하기로 했다.

     

     

     

    API (Application Programming Interface)

    응용프로그램에서 데이터를 주고받기 위한 방법

    특정 사이트에서 특정 데이터를 공유할 경우 어떠한 방식으로 정보를 요청하고 받을 수 있는지에 대한 규격

    > API 역할 :

                       1. API는 서버와 데이터베이스에 대한 출입구 역할

                       2. API는 애플리케이션과 기기가 원활하게 통신

                       3. API는 모든 접속을 표준화 (기계, 운영체제 등 상관없이 누구나 동일한 액세스)

    > API 유형 :

                       1. private API

                       2. public API

                       3. partner API

     

     

     

    Open API (Open Application Programming Interface)

    누구나 사용할 수 있도록 공개된 API

    > 개발할 때 들어가는 시간과 비용을 줄이고 더 양질 개발 가능

    > 공개키를 발급 받고 사용 가능

     

     

     

    RESTful API

    REST : Representational State Transfer, 리소스 지향 아키텍처로 모든 것을 리소스, 명사로 표현

    웹의 장점을 최대한 활용할 수 있는 아키텍처로써 REST 발표

    REST API는 HTTP Method별로 역할을 명시한 게 특징, 자원(uri는 정보의 자원을 표현) + 행위(http method)

    REST API 디자인 가이드 >

    1. URI는 정보의 자원을 표현해야 한다

    2. 자원에 대한 행위는 HTTP Method(GET, POST, PUT, DELETE)로 표현 

     

     

    API 명세서 작성의 장점 :

    1. API 호출하여 결과를 해석하기 위한 필수 정보만 간결하게 포함하고 있어 API 사용방법을 파악 용이

    2. 시스템이 해석할 수 있는 형식으로 작성된 경우, API 명세서로부터 소스 코드를 생성 가능

    3. 다양한 프로그래밍 언어로 API 제공하는 경우 라이브러리 및 문서를 통합 관리 가능

    4. 별도의 코드 작성 없이 테스트 도구에 명세서를 올려서 API 동작 시험이 가능

     

     

    URI : 서버 설계 도면 (서버 구성 요소)

    API : 서버 사용 설명서

     

     

    사용법 :

    1. /는 계층 관계를 나타내는 데 사용

    2. uri 마지막 문자로 슬래시 포함하지 않음

    3. 밑줄(_) 사용하지 않음

    4. uri 경로에는 소문자가 적합

    5. 파일 확장자는 uri에 포함하지 않음

    5. 자원을 표현하는데는 collection, document

     

     

    API 단점

    1. 보안성과 HTTP 방식의 제한

    : API의 단일 진입점인 API 게이트웨이는 해커의 타깃 대상이 될 수 있다

    평범한 HTTP 메서드를 사용하여 액세스 할 수 있다는 점이 보안성에서는 큰 단점

    메시지 가로채기 공격(man-in-the-middle), CSRF(Cross-Site Request Forgery) 공격, SQL 삽입 공격, DDpS공격 등에 취약

    2. 표준의 부재와 개발 지용

    : 공식화된 표준이 존재하지 않는다 따라서 관리가 어렵고 비용이 크게 들 수 있다

    기존 API 기능을 확장하려고 할 때 광범위한 프로그래밍 지식이 필요하다

     

     

     

    이렇게 자료를 찾아보고 나니, api 명세 작성이 무엇인지 대충은 알 것 같다

    그런데 저번 프로젝트에서는 명세서 없이 작업하고 주석을 달아 놨었다

    그렇게 했을 때도 어려운 점은 없었는데 왜 api 명세서가 필요하며

    db등 아직 정해진 것이 없는데 어떻게 api 명세서를 먼저 작성할 수 있는 건지 궁금하다

    저녁에 회의하면서 알게 되겠지만 아직은 잘 이해가 가지 않는다

     

     

     

     

     


    API란? 비개발자가 알기 쉽게 설명해드립니다! - wishket

    [Open API] 오픈 API 란? (tistory.com)

    개발 초보를 위한 RESTful API 설계 가이드 (velog.io)

    API 명세서의 개념 및 필요성과 웹 API 디자인 - 메모장 - 카루이사 (prayer.kr)

    API란? API의 정의와 종류 그리고 장단점 | 하늘네트 (hanl.tech)

    728x90
Designed by Tistory.