API란 무엇일까?

이진석·2022년 9월 25일
0

API!

api란?

Application Programing Interface의 약자로 응용프로그램에서 사용할 수 있도록 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스!

한마디로 어떠한 응용프로그램에서 데이터를 주고 받기 위한 방법을 의미한다.

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

API 접근 방식

API의 접근 방식에는 크게 세가지가 존재

  • Private API : API를 기업이나 연구 단체 등에서 사용하는 다양한 어플리케이션과 시스템의 통합을 위해 사용하는 것으로 단체 내부에서만 사용 할 수 있도록 한 것.
  • Partner API : API를 특정 비즈니스 파트너와 공유하는 것으로, 공유 받은 API를 품질 저하 없이 사용할 수 있으며 수익 창출을 목표로 함.
  • Public API : 모든 사람들에게 API를 제공하는 것으로, 개인이 API와 상호작용하는 프로그램을 무료로 개발 가능함. 다양한 아이디어를 통해 새로운 프로그램의 등장을 목표로 함.

API의 장점

장점

  • 자동화가 용이하다.
    API를 통해 사람이 직접 조작하지 않아도 관련 내용이 자동으로 생성되고 처리 되어 워크플로우가 빨라질 수 있음.
  • 범위의 확장성
    API라는 프로그램 사용 시 정보를 전달하는 기능이 있어 사용자의 환경에 맞춰서 전달이 가능하며 직접 엑세스하지 않아도 콘텐츠가 자동으로 생성 및 업로드 되어 확장이 용이
  • 적용력
    API는 변화 예측에도 큰 도움이 되기 때문에 API를 통해 데이터를 수집하고 전달하는데 있어 유연한 서비스 환경 구축 가능

오픈 API의 종류

구글 : https://cloud.google.com/apis?hl=ko

네이버 : developers.naver.com/main/

카카오 : https://developers.kakao.com/


rest API, 혹은 restful API 관련 자료 : https://gmlwjd9405.github.io/2018/09/21/rest-and-restful.html

EX) 로그인/회원가입을 위한 API

@app.route('/login/api', methods=['POST'])
def api_login():
    id_receive = request.form['id_give']
    pw_receive = request.form['pw_give']
    
    pw_hash = hashlib.sha256(pw_receive.encode('utf-8')).hexdigest()
    
    result = db.user.find_one({'id': id_receive, 'pw': pw_hash})
    
    if result is not None:
        payload = {
            'id': id_receive,
            'exp': datetime.utcnow() + timedelta(seconds=60*60*1)
        }
        token = jwt.encode(payload, SECRET_KEY, algorithm='HS256').decode('utf-8')
        return jsonify({'result': 'success', 'token': token})
    else:
        return jsonify({'result': 'fail', 'msg': '아이디/비밀번호가 일치하지 않습니다.'})
        
        @app.route('/join', methods=["POST"])
        
def userRegister():
    idReceive = request.form['id_give']
    pwReceive = request.form['pw_give']
    nicknameReceive = request.form['nickname_give']
    gitReceive = request.form['git_give']

    pwHash = hashlib.sha256(pwReceive.encode('utf-8')).hexdigest()

    doc = {
        'id': idReceive,
        'pw': pwHash,
        'nickname': nicknameReceive,
        'git': gitReceive,
    }
    db.user.insert_one(doc)

    return jsonify({'msg': '저장 완료!'})
profile
고양이 두마리의 집사이자 행복 코딩을 추구하는 주니어 개발자입니다!

0개의 댓글