Programming/etc

API

esoog Polaris 2023. 8. 28. 13:53
반응형

# API(Application Programming Interface)

컴퓨터 프로그램 간 상호 작용을 위한 규약이나 인터페이스를 의미합니다. 간단히 말해서, 소프트웨어 컴포넌트들이 서로 소통하는 방법을 제공하는 도구나 메커니즘입니다.
API는 여러 개념을 포괄하며, 다양한 분야에서 사용됩니다. 주로 웹 개발, 애플리케이션 개발, 데이터 공유 등에서 사용됩니다. 아래는 API에 대한 주요 개념과 사용 사례에 대한 설명입니다:

 

 

1. **개념**: API는 프로그램끼리 상호 작용하기 위한 인터페이스입니다. 이를 통해 하나의 소프트웨어가 다른 소프트웨어의 기능을 활용하거나 데이터에 접근할 수 있습니다. API는 프로그램이 서로 통신하는 방식을 정의하고, 데이터를 전송하거나 받을 수 있는 규약을 제공합니다.

 


2. **웹 API**: 웹 개발에서 가장 흔히 사용되는 API는 웹 API입니다. 이는 웹 서비스를 제공하는 서버의 기능과 데이터에 접근할 수 있는 방법을 정의한 것입니다. 웹 API는 주로 HTTP 프로토콜을 통해 요청(Request)을 보내고 응답(Response)을 받아 사용자나 다른 시스템과 상호 작용합니다.

 


3. **REST API**: Representational State Transfer의 약자로, 웹 서비스 아키텍처의 한 형식입니다. REST API는 자원을 URL로 나타내고 HTTP 메서드(GET, POST, PUT, DELETE 등)를 사용하여 해당 자원에 대한 작업을 수행하는 방식을 기반으로 합니다.

 


4. **클라이언트-서버 모델**: API는 보통 클라이언트와 서버 간 상호 작용을 위한 방법을 제공합니다. 클라이언트는 API를 통해 서버의 기능을 사용하거나 데이터에 접근하고, 서버는 요청에 따라 데이터를 처리하여 응답합니다.

 


5. **API 키와 인증**: 일부 API는 보안을 위해 API 키나 인증 방식을 사용합니다. API 키는 클라이언트를 식별하고 권한을 부여하기 위해 사용되며, 인증은 API 사용자의 신원을 확인하여 접근 권한을 부여하는 과정입니다.

 


6. **사용 사례**: API는 다양한 용도로 사용됩니다. 예를 들어, 외부 서비스의 데이터를 가져오는데 사용되는 외부 데이터 API, 결제 시스템과 연동하여 결제를 처리하는 결제 API, 지도 서비스의 기능을 웹 애플리케이션에 통합하는 지도 API 등이 있습니다. API는 소프트웨어 개발을 효율적으로 하기 위한 중요한 도구로, 다양한 서비스 및 플랫폼 간의 통합과 협업을 가능케 합니다.

 

 

 

 

 

# 예제1(PHP 사용)

 

1. mysql 등 DB에 데이터 입력

<?php

$conn = mysqli_connect("localhost", "data", "pass", "data");
// mysqli_connect("호스트명", "user", "password", "DB명");
$sql = "INSERT 
	INTO `gps` 
		( `device`, `created`, `lat`, `lng`) 
	VALUES 
		( 'a', NOW(), '12', '13');";

mysqli_query($conn, $sql );
echo "ok<br>";

?>

 

 

2. DB를 json화 해서 api로 만들어 소통

 

<?php

$conn = mysqli_connect("localhost", "data", "pass","data");

$sql = "SELECT * FROM gps WHERE device = 'a' LIMIT 100  ;";
$result = mysqli_query($conn, $sql );
	
$dbdata = array();
while($row = mysqli_fetch_array($result)) {
		$dbdata[] = [(int)$row['id']
					,$row['created']
					,(float)$row['lat']
					,(float)$row['lng'] ];
	}

	//Print array in JSON format
	 echo json_encode($dbdata);
?>

 

 

3. api 사용하기

 

  function updateChart() {
    var json_addr = "http://localhost/api/view.php?dev=<?= $device ?>";
    // api 엔드포인트

    $.getJSON(json_addr, function (data) {
      // 제이쿼리 사용
      // $.getJSON(api 엔드포인트, function (data) { }
      $.each(data, function (key, val) {
        // $.each(data, function (key, val) { }
        // 데이터에서 키와 벨류 값 foreach로 꺼냄
        var time = val[1];
        var temp = val[2];
        var hum = val[3];
      });
    });
    setTimeout(function () {},1000);
    // 1초마다 리부트 js
  };

 

 

 

 

 

# 예제2(Django 사용)

 

1. 기본적인 Django 프로젝트 생성 - mysql 연동 - 모델 생성 - 시리얼라이저 생성 까지는

이전 Django 페이지 참조.

 

 

2. 화면으로 view에 뿌려주기

 

from rest_framework.response import Response
from rest_framework.decorators import api_view
from .models import All_data, Rel_data
from .serializers import All_Serializer

@api_view(['GET'])
def get_data(request):
    datas = All_data.objects.all()
    serializer = All_Serializer(datas, many=True)
    return Response(serializer.data)

* @api_view 데코레이터를 사용하면,

자동으로 api를 문서화 해준다. 예쁘게;

 

 

 

 

 

# 참고 카카오 api

https://apis.map.kakao.com/web/sample/multipleMarkerImage/

 

728x90

'Programming > etc' 카테고리의 다른 글

설정파일 포맷 관련  (0) 2023.09.18
프로그래머 일기 1  (0) 2023.09.13
Git의 모든 것  (0) 2023.08.23
웹앱(Web app)에 관하여  (0) 2023.08.03
RESTful API(Representational State Transfer)  (0) 2023.08.03