Insomnia Designer와 Insomnia Core에 대한 정직한 리뷰

API 디자인 워크 플로의 점진적 개선

FHIR R4 EOB (Description of Benefit) ¹에 대한 Swagger 사양의 Insomnia Designer 디버그 모드 ¹

2020 년 4 월 28 일 Kong Linux, OS X 및 Windows를 기본 지원하는 API 설계 및 디버깅을위한 독립형 데스크톱 애플리케이션 인 Insomnia Designer를 발표했습니다 . 이 기사는 개발자를위한 Insomnia Designer 대 swagger-editor (독립 실행 형 API 디자인) 및 Insomnia Core 대 Postman API 클라이언트 (독립 실행 형 요청 / 응답)에 대한 포인트 별 개요입니다.

불면증 디자이너 vs Swagger-Editor

요약 : 불면증 디자이너는 잠재력이있는 점진적인 개선입니다. 다음 프로젝트에서 사용할 계획입니다.

디자인 : 넥타이

편집자 편집에 익숙하다면 Insomnia Designer에서 집처럼 편안하게 느낄 것입니다. 유일한 주요 스타일 차이는 왼쪽 탐색 창으로 SwaggerHub API 디자이너 (SmartBear의 SaaS 솔루션)가 "영감"한 것처럼 보입니다.

swagger-editor와 마찬가지로 미리보기 창은 정적 렌더링이며 실제 WYSIWY가 아닙니다 . 모든 편집 내용은 편집 창에서 적용해야합니다. 이 디자인은 간단하지만 탐색 → 편집 → 미리보기 흐름을 강요하여 큰 문서에서 다루기 어렵습니다. 실제로 미리보기 (직관적)에서 하위 섹션을 클릭하면 편집 또는 탐색에서 해당 위치로 스냅되지 않습니다. 편집 업데이트도 미리보기 다시 렌더링에서 약간 느리지 만 Insomnia Designer가 아닌 Electron 이라고 확신합니다 .

로컬에서 실행되는 swagger-editor. 호스팅 된 버전과 동일합니다.

개발자 인체 공학 : 환경으로 인한 불면증

swagger-editor를 사용하면 하나의 환경을 얻을 수 있습니다 host. 당신은 당신의 swagger 문서에 포함시킵니다. 개인용 구성을 커밋하지 않도록 내보낼 때마다 변경하고 다시 변경해야합니다.

Insomnia를 사용하면 swagger 사양에 포함되지 않은 ENV를 포함하여 환경에서 구성을 비공개로 유지하고 공개 또는 비공개 환경간에 쉽게 전환 할 수 있습니다. 이 기능이 마음에 들었습니다.

디버그 모드의 관리 환경. ENV는 Base Environment에서 결합 될 수 있습니다. 이를 통해 ENV를 템플릿으로 만들고 구성간에 빠르게 전환 할 수 있습니다.

가져 오기 / 내보내기 : 넥타이

현실적으로 이러한 도구 중 하나와 함께 Swagger v2 또는 OAS v3를 사용하게됩니다. 모트 포인트.

협업 : GitSync가 소규모 팀 워크 플로우의 판도를 바꿀 수 있기 때문에 불면증

개발자 인체 공학을 약간 개선 한 swagger-editor와 동일한 기능입니다. 당신은 왜 귀찮게 생각할 수 있습니다.

게임 체인저

클라이언트의 오른쪽 상단에 자리 잡은 순진한 "Git 동기화 설정"버튼이 있습니다. 이 버튼은 소규모 팀 워크 플로를 개선 할 수 있습니다. 이를 통해 선택한 git 공급자에게 직접 푸시 / 풀 수 있습니다 ( GitHub에서 테스트했습니다 ). 문서는 온 보딩을위한 작업이 필요하지만 기능은 작동하며 문제는 베타에서 해결 될 것으로 예상합니다.

  • Insomnia는 병합 충돌로 폭발 할 것이기 때문에 다른 지점에서 작업해야합니다.
  • 디렉토리는 비어 있어야하므로 동일한 저장소에서 코드 및 기타 문서와 함께 사양을 호스팅 할 수 없습니다.

반대로 swagger-editor는 협업을 제공하지 않습니다. 도구 외부에서 pull / commit / push 팔로우를 실행해야합니다. 제 경험상, 2 명 이상의 개발자가 swagger-editor 파일에 짝을 지어 혼돈의 비결입니다.

통합 : 내장 된 swagger-codegen 지원으로 인한 swagger-editor

클라이언트 및 서버 생성 지원은 swagger-editor UI에서 사용할 수 있지만 기능은 swagger-codegen 에서 파생됩니다 .

내가 한 API 계약 개발이 너무 반복적이기 때문에 서버 생성에 많이 사용되지 않았습니다. 서버 내보내기는 diff를 자동으로 적용하지 않으므로 실제로는 처음에만 유용합니다.

swagger-editor 서버 내보내기. 클라이언트 SDK 목록도 인상적입니다. Swagger 커뮤니티에 대한 유언.

반면에 클라이언트 SDK 내보내기는 gem입니다. 모든 계약에서 so-so 클라이언트를 만들 수 있습니다. 인간이 선별 한 SDK는 주어진 언어의 일반적인 사용에있어 변덕을 설명하는 더 나은 인체 공학적 구조를 갖습니다. 그러나 이렇게하면 며칠이 아닌 몇 분 안에 고객을 얻을 수 있습니다.

예, swagger-editor가 카테고리에서 "승리"합니다. 하지만 불면증은이 통합이 필요하지 않습니다. 빌드 파이프 라인과 별도로 클라이언트 SDK 생성을 위해 swagger-codegen 을 사용 합니다.

라이선스 : 타이

Swagger-editor의 Apache 2.0 vs Insomnia 's Expat (AKA MIT) 라이선스. 둘 다 관대합니다. 둘 다 열립니다.

커뮤니티 지원 : swagger-editor

SmartBear에 대해 무엇을할지 말하세요. 그들은 Swagger (현재 OpenAPI 사양)를 중심으로 10 년 동안 활발한 오픈 소스 커뮤니티를 지원했습니다. Swagger는 실제로 하향식 (Mulesoft RAML) 또는 계약으로 달빛을 발할 수있는 문서 ² (Apiary API Blueprint)에 관심이없는 한 사실상 API 사양의 표준입니다. Swagger는 Swagger 일 뿐이며 커뮤니티의 증거입니다. 공로로 인해 SmartBear가 Linux Foundation을 관리하고 파괴하지 않은 커뮤니티입니다. 그들은 오라클을 만들 수 있고 의도적으로 커뮤니티를 분열시킬 수 있습니다 ( 잊지 마세요 ). 그러나 그들은 그렇지 않았습니다.

SaaS 도구 외에 : Apiary 및 SwaggerHub

SaaS 전용 도구 인 Apiary (Oracle) 및 SwaggerHub (SmartBear)는 swagger-editor 및 Insomnia Designer와 같은 독립 실행 형 클라이언트와 직접 비교할 수 없습니다. 이러한 도구를 불면증과 비교하면 SaaS- DesktopLatke-Hamantash 가 될 것입니다

Apiary는 github (Insomnia의 access_token 접근 방식이 허용하는 다른 git 제공 업체는 아님)와 통합하도록 강제하고, Apiary 팀 설정을 사용하도록하고 Apiary API Blueprint에서만 편집 할 수있는 SaaS 플랫폼 편집기로 강제 실행합니다.

SwaggerHub API 디자이너. swagger-editor에 포함되지 않은 왼쪽 탐색 창에 유의하십시오. 사소 해 보이지만 내비게이션은 대규모 사양에서 워크 플로를 크게 지원합니다.

SwaggerHub는 플랫폼에 사양을 저장해야하므로 모든 협업이 SaaS에 적용된다는 점에서 더 나쁩니다.

Apiary와 SwaggerHub는 기업을위한 훌륭한 솔루션입니다. 저는 API 계약 (비 엔터프라이즈에도 유용함)으로 달빛을 발하는 사람이 읽을 수있는 문서에 대한 API Blueprint의 우아함에 감탄하고 비 개인적인 프로젝트에서 사용했습니다.

불면증 코어 대 우편 배달부

TL; DR

  • 고급 사용자는 newman-cli 때문에 Postman을 고수하십시오 .
  • 신규 사용자는 더 직관적이기 때문에 Insomnia Core를 시작하십시오.
  • 당신의 자유를 존중하는 불면증은 훨씬 덜 악입니다.

Insomnia REST의 리 브랜딩은 GraphQL에 대한 확장 된 지원을 고려할 때 정당화됩니다. 이것은 단지 마케팅이 말하는 것이 아닙니다. 직관적 인 키 바인딩을 포함하여 훨씬 깔끔한 인터페이스를 가진 Postman을 상상해보십시오 . OAuth2.0 인증 코드 사전 설정의 스크린 샷에 모든 내용이 나와 있습니다.

Insomnia Core (v7.1.1) OAuth2.0 인증 코드 사전 설정.
Postman (v7.23.0) OAuth2.0 인증 코드 사전 설정. 모달 및 여러 단계의 탐색.

통합 : Postman, newman-cli 때문에 그러나 이것은 고급 사용자에게만 적용됩니다.

예, Insomnia Core가 디자인 콘테스트에서 우승했습니다. 그러나 Postman의 고급 사용자에게는 전환해야 할 설득력있는 이유가 없습니다. Postman은 newman cli에 의해 더욱 우수해진 훌륭한 도구로, Insomnia 커뮤니티에서 이에 상응하는 (내가 알고있는) ⁵이 없습니다.

첫 번째 API 클라이언트를 결정하는 경우 Insomnia Core를 사용해 보겠습니다. 깔끔한 인터페이스가 직관적입니다. Postman과 달리 헤더 업데이트와 같은 기본 작업을 수행하는 방법을 알아 내기 위해 Google을 검색 할 필요가 없습니다. 복잡한 인터페이스는 기록을 통해 curl 명령에 대한 변경 사항을 추적하는 것이 성가시기 때문에 그래픽으로 몇 개의 끝점에 도달하는 데 필요한 것보다 더 가파른 학습 곡선을 가지고 있습니다.

가져 오기 : 넥타이

Insomnia와 Postman 의 수입 은 대체로 비슷합니다. Postman은 HAR 수입을 지원하지 않습니다. Insomnia는 Postman을 지원하지만 Postman은 Insomnia를 지원하지 않습니다. 그렇지 않으면 둘 다 일반적인 이름, 주로 Swagger (OpenAPI 사양)를 지원합니다.

RAML 가져 오기가 필요하고 RAML-Swagger 변환기가 필요하지 않는 한 동일합니다. API Blueprint (Apiary)에서 가져 오기를 지원하지 않으므로 Apiary 사용자는 호환성을 위해 내보내기 (대부분 Swagger / OpenAPI)해야합니다.

# Import comparison of Insomnia Core and Postman
|  Insomnia-only  |      Both      |  Postman-only   |
|-----------------|----------------|-----------------|
|  Insomnia       |  Swagger (v2)  |  RAML           |
|  HAR            |  OpenAPI (v3)  |  Runscope       |
|                 |  Postman v2    |  Postman v1     |
|                 |  WADL          |                 |
|                 |  cURL          |                 |

Postman의 내보내기 기능 부족은 개발자에게 냉담한 무시입니다. Insomnia는 자체 형식과 HAR (새로운 W3C 표준)를 지원합니다. 내보낼 요청을 선택할 수도 있지만 Postman은 전부 또는 아무것도 아닙니다. Insomnia JSON 직접 내보내기 및 Postman Collection v2 (가져 오기) → HAR (내보내기)가 원활하게 작동했습니다.

Insomnia Core (V7.1.1) 내보내기 선택

Postman은 Postman으로 만 내 보냅니다. HAR 수입 지원은 Postman의 백 로그에 7 년 동안 남아 있습니다 !? 움직임없이. 그들은 당신이 그것을 충분히 나쁘게 원한다면 스스로 고칠 수 있다고 말하지만 Postman은 나의 자유를 존중하지 않고 비공개 소스이기 때문에 나는 할 수 없습니다. HAR와 같은 개방형 형식으로 가져 오기 / 내보내기가 없다는 것은 Postman이 상호 운용 할 수 없음을 의미합니다.

# Export comparison of Insomnia Core and Postman
|  Insomnia-only  |   Both  |  Postman-only |
|-----------------|---------|---------------|
|  Insomnia       |         |  Postman      |
|  HAR            |         |               |

"Share Workspace"(Insomnia Core) 및 "My Workspace"(Postman)를 사용하려면 SaaS 제품이 필요합니다. 또 다른 계정, 또 다른 사일로. Postman은 Google 로그인을 제공합니다. Apiary는 Github와 Twitter를 제공합니다!? (오라클 세일즈맨). 개인을 위해 GitHub, GitLab 또는 Bitbucket을 제공하지 않습니다. 아마도 Insomnia SaaS는 엔터프라이즈 계층에 SSO를 허용하므로 시험판을 손상시키는 작은 컷 중 하나로 분류합니다.

라이센싱 : 불면증이지만 Expat 대신 AGPLv3를 사용하는 새로운 도구의 출시를 사용하지 못했습니다.

Postman 데스크탑 클라이언트는 폐쇄 소스 입니다. 자동 실패. github에서 지원 문제를 허용합니다 . 우리는 개발자입니다. 즉, "개방형 철학 " 에 언급 된 "개방형 대화"와 "투명한 로드맵 "이 열려 있지 않습니다 .

Insomnia 데스크톱 클라이언트는 Expat 라이선스 (AKA MIT 라이선스 )에 따라 오픈 소스 입니다. Expat 라이선스는 관대하며 GPL / AGPLv3 (강력한 카피 레프트, 비 허용) 대신 오픈 소스 (Libre와 반대) 회사에서 자주 사용합니다. Kong은 GPL / AGPLv3에 따라 릴리스 하고 API 도구의 네 가지 자유에 대해 공개적으로 약속 할 기회를 가졌습니다 . 그들은하지 않았습니다. 그럼에도 불구하고 오픈 소스 불면증은 한 개발자의 예견 없이는 존재할 수 없으며 개발자가 Kong 내에서 오픈 소스 (심지어는 자유로울 수도 있음)를 요구하지 않고는 죽을 것입니다.

마무리

디자인 결정

Insomnia Designer와 Core는 모두 잘 나타납니다. Insomnia Designer에는 모든 종소리와 휘파람이 없습니다. Designer가 베타 버전임을 알 수 있습니다. 하지만 더 중요한 것은 팀의 의도를 느낄 수 있다는 것입니다.

  • 모듈성에 대한 유닉스 철학. 디자이너를 Core에서 분리하여 둘 다 가볍습니다. Postman과 달리 종소리와 호루라기 가 없습니다 . 이렇게하면 통합 문제 (예 : 두 응용 프로그램간에 작업 공간을 원활하게 재사용 할 수 없음)를 희생하여 Postman의 부풀림을 방지 할 수 있습니다.
  • 앞으로 키 바인딩. 그들은 당신이 요청을 보내기 위해 보내기 버튼을 누르기를 기대하지 않습니다. 그들은 기대 Ctrl+Enter합니다. 이것은 훨씬 더 빠르고 개발자 중심 도구의 느낌을줍니다.
  • 웹 기반 (Apairy, SwaggerHub) 대신 독립 실행 형 데스크톱 클라이언트. 데스크톱 클라이언트는 SaaS 제품에 대한 게이트웨이 약물입니다. 잘했다.

지난 몇 년 동안 API 개발 생태계는 3Scale (Redhat을 통한 IBM), Apigee (Google), Apiary (Oracle), RAML (Mulesoft를 통한 Salesforce)과 같은 대규모 기존 기업에 의해 삼켜졌습니다. Insomnia (Kong)와 SwaggerHub (SmartBear)는 제대로 작동하는 소프트웨어로 이러한 거물들과 경쟁하고 있습니다.

API 과점은 점점 더 많은 삶이 API를 통해 거래됨에 따라 혁신과 소프트웨어 자유에 대한 위험을 나타냅니다. Kong은 Insomnia를위한 "오픈 코어"비즈니스 모델을 선택하여 한 목이 막히고 보안 (SSO) 및 대규모 팀의 계층 적 제어에 대한 기업의 욕구를 충족하는 (폐쇄 된 소스) SaaS 제품을 통해 엔터프라이즈에서 수익을 창출했습니다.

기껏해야 Kong은 자유 소프트웨어 회사가 아니라 오픈 소스 소프트웨어 회사입니다. 회사로서 Kong은 커뮤니티 중심의 협동 조합이 아니라 VC의 지원을받습니다. Kong은 당신의 자유를 존중하지 않습니다. 더구나 지쳐 버린 실용 주의자는“오픈 코어”가 닫힌 것보다 낫다고 주장한다.

부인 성명

Ryan의 생각 / 댓글은 자신의 것입니다 .⁴ 그는 Kong (회사 Insomnia의 인수자)과 재정적 관계가 없습니다. 그는 오픈 소스 건강 데이터 상호 운용성 컨설팅을위한 소프트웨어를 작성하고 "기술 자문"작업을하지 않을 때 "API 작업"을 수행합니다.

각주

¹ 공용 샌드 박스 서버유지 관리해 주신 James Agnew 및 HAPI FHIR에게 감사드립니다 . Athiththan Kathirgamasegaran 에게 감사드립니다 . Petstore를 수십억 번 사용하고 싶지 않았기 때문에이 기사에 사용 된 모든 Swagger는 FHIR-to-Swagger 도구 로 생성되었습니다 . FHIR (Fast Healthcare Interoperability Resources)은 건강 데이터 상호 운용성을위한 개방형 표준입니다.

²“계약으로 달빛을 발할 수있는 문서”는 높은 평가를 받고 있습니다. .NET에서 Apaiary API Blueprint를 정기적으로 읽고 / 씁니다 vim. Swagger JSON에서는 발생하지 않습니다. Swagger YAML, 아마도 몇 가지 끝점에 대해. 나는 그것을 사용하지 않았지만 vim kludge to swagger-ui를 즐겼습니다 .

³ 게임이라면 토론 입장의 한 편을 택할 수있을 것입니다. 아마도.

⁴ Swagger 및 Insomnia 커뮤니티에 감사드립니다. FLOSS 유지 관리자에 대한 찬사 .

insomnia-cli 는 Insomnia REST (현재 Insomnia Core)를위한 타사 CLI 도구입니다. 불면증이 제 3 자 기여를 낳았다는 것은 훌륭하지만, 입양, 적극적인 유지 관리, 리포터 및 lifeCycle 후크가 부족하기 때문에 Postman의 제 1 자 newman-cli와 동등하다고 생각하지 않습니다.

CC BY-SA

Suggested posts

불안으로 인한 불면증을 치료하는 간단한 방법

내 야간 루틴에 대해 지나치게 엄격 해지면서 모든 것이 달라졌습니다.

불안으로 인한 불면증을 치료하는 간단한 방법

전염병으로 인해 수면 일정이 망가졌습니다. 대부분의 젊은 전문가들과 마찬가지로 저는 2020 년 봄에 집에서 일하기 시작했습니다.

마이크로 서비스 VS API : 서로 어떻게 다릅니 까?

마이크로 서비스 VS API : 서로 어떻게 다릅니 까?

마이크로 서비스 대 애플리케이션 프로그래밍 인터페이스 (API). 둘 다 소프트웨어 개발에서 뚜렷한 역할을합니다.

Related posts

"실용적인 프로그래머"의 5 가지 필수 사항

역대 베스트셀러 코딩 북의 요점

"실용적인 프로그래머"의 5 가지 필수 사항

Pragmatic Programmer는 1999 년에 처음 출판되었으며 이후 역대 최고의 프로그래밍 책으로 선정되었습니다. 저자 Andy Hunt와 David Thomas는 Agile Manifesto의 원저자 중 하나였으며 몇 가지 심각한 자격을 가지고 있습니다.

대규모 GraphQL 쿼리 공격으로부터 보호

공격자가 공개적으로 사용 가능한 GraphQL 인터페이스를 사용하여 사이트를 스크랩하거나 서비스 거부 공격을 실행하는 방법에 대해 알아보십시오. 이들은 4 가지 방법 중 하나로이를 수행 할 수 있습니다. 단일 대형 쿼리를 신중하게 구성하여 실행하고, 관련 데이터를 가져올 수있는 병렬 쿼리를 많이 작성하고, 일괄 요청을 사용하여 많은 쿼리를 연속적으로 실행하고, 마지막으로 많은 요청을 보냅니다.

기술 인터뷰의 사회적 구성 요소

코딩 문제는 스트레스가 많지만 스트레스에 대한 당신의 반응은 당신의 기술적 능력보다 더 크게 말합니다.

기술 인터뷰의 사회적 구성 요소

기술 업계의 직책을 위해 인터뷰 할 때 일반적으로 제안을 고려하기 전에 최소한 3 차례의 인터뷰를 거치게됩니다. 라운드는 일반적으로 다음과 같습니다. 그렇게 생각하면 잘못된 것입니다.

훌륭한 개발자의 3 가지 행동 특성

훌륭한 개발자의 3 가지 행동 특성

훌륭한 개발자를 만드는 비 기술적 인 것들 나는이 기사를 작성하는 것을 한동안 미루고 있습니다. 나는 그것을 작성할 자격이 있다고 생각하지 못했습니다. 오늘은 쓸 때라고 생각했습니다.