웹 사이트가 자체 공개 API를 사용해야합니까?


31

웹 서비스를 작성하기 시작했으며 nodeJS와 RESTfulish 접근 방식으로 구축했습니다.

내가 수집 한 것에서 :

  • 장점은 코드를 복제 할 필요가 없다는 것입니다.
  • 단점은 다음과 같습니다.
    • 공개 API를 자주 업데이트하지만 버전 관리를 통해 해결해야합니다.
    • 실제로 서비스 특정 캐싱 및 최적화를 할 수 없습니다

모범 사례는 무엇입니까? Stack Exchange, Github, Twitter 등의 사이트가 고객을 위해 자체 API를 사용합니까?

api 

12
나만의 개밥을 먹으면 공개 API를 향상시킬 수 있습니다.
Ben Brocka

그것이 아마존이하는 방식입니다.
OliverS

2
OlverS의 요점에 추가하려면 Google 플랫폼 Rant
Brian

답변:


37

자신의 API를 절대적으로 사용해야합니다. 이 개념은 dogfooding으로 널리 알려져 있으며 코드 중복 방지를 넘어서는 많은 이점이 있습니다.

  • 사이트 / 제품과 API 소비자가 작성할 내용 (예 : API에 대한 기대치) 간의 일관된 동작
  • 다른 형태의 테스트.
  • 고객이하기 전에 API에서 버그를 찾을 수 있으며 해결 비용이 저렴합니다.

나는 당신의 요점 중 하나에 반대한다고 주장하지만 : 당신은 API를 자주 업데이트 해서는 안됩니다 . 잠시 동안 머무를 API를 설계하고 증명하는 데 시간을 보내십시오. 다행스럽게도 이런 식으로 개밥을하는 것이 그것을 강제 할 것입니다. 이전에 고객 코드를 깨 뜨렸을 경우 이제는 자신의 코드를 깨뜨릴 것입니다. 당신이 해야 할 때 , 예 버전 관리는 해결책이지만 피해야합니다.


0

어떤 이유로 그것은 질문의 포스터로 로그인 할 수 없지만 그것은 나였습니다. 나는 당신의 대답을 받아 들일 수 없습니다.

그러나 API를 어떻게 업데이트하고 싶지 않습니까? 새로운 기능 추가, 인기없는 기능 제거, 리팩토링 등은 어떻습니까?


안녕 이것은 그의 대답에 대한 의견이어야하지만 의견을 말할 충분한 담당자가 있다고 생각하지 않습니다. 어쨌든 요점은 API를 자주 업데이트해서는 안된다는 것 입니다. 그럼에도 불구하고 새로운 기능을 추가해도 아무런 문제가 없습니다. 기존 코드를 손상시킬 수 없습니다. 인기가없는 것을 제거하는 이유는 무엇입니까? 더 이상 사용되지 않도록하고 사람들이 지원 중단에 응답하는 데 오랜 시간이 지난 후 언젠가는 제거하십시오.
Max

2
API에 메소드를 추가 하는 것은 좋습니다. 기존 API를 변경 하면 API에 의존하는 코드가 깨지기 때문에 나쁩니다.
Bryan Oakley

@ stanm87 : Max와 Bryan이 잘 말했습니다. API 계약 (즉, 인터페이스 및 예상, 작동, 동작) 변경을 피해야합니다. 사람들은 API를 사용하고 변경하면 코드가 손상된다는 것에 의존합니다.
Steven Evers

명확하게 해주셔서 감사합니다. @ 맥스 나는 실제로 그의 답변에 댓글을 달 수 없습니다
stanm87
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.