인터넷에서 Restful API에 대한 설명을 보니 우리가 일반적으로 작성하는 인터페이스와 크게 다르지 않다는 생각이 듭니다. 모두 HTTP get 또는 post 요청을 통해 데이터를 전송하고 json 형식이나 xml 형식을 반환합니다.
restful API에 다음 요청 방법이 있는 경우에도:
PUT: 서버의 리소스 업데이트(클라이언트가 완전한 리소스 데이터 제공)
DELETE: 서버에서 리소스 삭제
HEAD: 서버에서 헤더 정보(리소스 아님) 가져오기
그러나 이는 기껏해야 데이터를 전송하는 방법일 뿐입니다. 예를 들어 DELETE는 리소스를 삭제하는 것입니다. 기사를 삭제하려면 기사 ID를 서버에 전달해야 하지만 특정 논리 코드는 다음과 같습니다. 일반적인 인터페이스가 아닌데, 그냥 get을 사용해서 기사 ID를 직접 전송할 수는 없나요? 왜 DELETE 전송 방법을 사용해야 하나요?
아직 RESTful API에 대해 잘 이해하지 못하고, 일반 인터페이스와 어떻게 다른지 아직 잘 모르겠습니다
RESTful API는 API에 대한 설계 사양 또는 설계 이론 집합일 뿐입니다.
URL과 Method의 두 가지 점만 보면 다음과 같이 이해할 수 있습니다. URL은 인터넷 리소스를 고유하게 식별하는 데 사용되고, Method는 현재 요청이 리소스에 대해 수행할 작업을 식별하는 데 사용됩니다.
물론 GET http://www.xx.com/user?id=123을 통해 사용자를 삭제할 수 있지만 이는 RESTful API 사양을 준수하지 않습니다.
RESTful API 사양을 준수하려면 http://www.xx.com/user/123을 삭제해야 합니다.
여기서 http://www.xx.com/user/123은 인터넷 리소스(특정 사이트의 사용자)를 식별하는 데 사용되며 DELETE는 내 요청이 사용자 삭제임을 식별하는 데 사용됩니다.
예를 들어, 이 사용자의 세부 정보를 얻으려면 내 요청은 다음과 같습니다. GET http://www.xx.com/user/123 여전히 동일한 URL이지만 GET을 사용하여 요청하면 방법을 사용하려면 서버는 내가 리소스 정보를 가져오려는 것이지 삭제하려는 것이 아니라는 것을 알아야 합니다.
Restful API에 대한 개인적인 이해는 이 작업이 수행하는 작업을 다른 사람에게 더 명확하게 알릴 수 있다는 것입니다. 물론 get 메소드를 사용하여 삭제된 데이터를 검색할 수 있지만 삭제만큼 명확하지는 않습니다.
각 프레임워크에는 Restful api를 정의하는 고유한 방법이 있지만(예: laravel과 Yii2는 Restful api 메서드를 다르게 명명함) 두 가지 다른 정의 메서드에는 메서드 이름의 해당 추가, 삭제 및 수정이라는 공통점이 있습니다. 모든 것이 설정되었습니다. 이 경우 개발자는 개발을 할 때 이 방법이 어떤 용도로 사용되는지 명확하게 이해할 수 있습니다. 적어도 이름은 훨씬 더 명확해 보입니다.
개인적인 겸허한 의견...