ASP에서 OpenAPI, Swagger UI 및 HttpRepl을 사용합니다.NET Core 5 API 개발 가속화

17954 단어 aspnetcoredotnet
ASP에서 API를 개발할 때NET Core, 사용할 수 있는 도구가 많습니다.Visual Studio에서 어플리케이션을 실행하고 브라우저에서 localhost 엔드포인트를 호출한 날은 지났습니다.
지난 몇 년 동안 OpenAPI 규범에 가장 많이 사용되는 도구가 많이 등장했는데 Swagger project이다.많은 ASP.NET Core API 개발자는 Swagger UI에 익숙하다. 이것은 REST 문서 도구로 개발자나 개발자가 프로젝트의 swagger.json 파일에서 구축한 예쁜 인터페이스를 통해 API와 상호작용을 할 수 있도록 한다.교실에 있어요.NET World, the Swashbuckle library, 8000만 NuGet 다운로드 및 개수
또한 명령줄에서 API를 탐색할 수 있는 the HttpRepl project이 인상적입니다.유틸리티 like curl과 달리 간단한 경량 인터페이스에서 디렉토리와 파일을 탐색하는 것과 같은 명령줄에서 API를 탐색할 수 있습니다.cd을 단점에 입력하고 번개 같은 피드백을 얻기 위해 그들을 빠르게 호출할 수 있다.OpenAPI(the ability to perform OpenAPI validation on connect 포함)를 지원합니다.
ASP에서는 이러한 유틸리티가 새롭지 않습니다.NET Core 5, 이제 더 쉽게 시작할 수 있습니다.본문은 이 공구들을 토론할 것이다.
시작하기 전에 an ASP.NET Core API을 준비해야 합니다. CRUD(생성-읽기-업데이트-삭제) 작업이 있을 가능성이 높습니다.원하신다면 to clone and use mine을 마음대로 선택하세요.
이 글은 다음과 같은 내용을 포함하고 있다.
  • What’s the difference between OpenAPI and Swagger?

  • Use Swagger UI with ASP.NET Core projects by default
  • How it’s enabled, and how you can opt out
  • Verify the middleware and launchSettings.json

  • Use HttpRepl for a great command-line experience
  • Install
  • Basic operations
  • Modify data with a default editor
  • Remove repetition with a script
  • Learn more about configuring HttpRepl
  • Wrap up
  • OpenAPI와 Swagger의 차이점은 무엇입니까?


    만약 OpenAPI와 Swagger가 서로 바꾸어 사용할 수 있다는 것을 들어 본 적이 있다면, 그것들의 차이가 무엇인지 알고 싶을 것이다.
    간단히 말해 OpenAPI는 API 기능을 기록하는 데 사용되는 사양입니다.Swagger는 OpenAPI 규범 (예: Swagger UI) 을 사용하는 SmartBear (오픈 소스 및 비즈니스) 에서 제공하는 도구이다.

    ASP와 함께 Swigger UI를 사용합니다.기본적으로 NET 핵심 항목


    초보자의 경우 Swashback 프로젝트에서 Swagger UI를 사용할 수 있습니다. 이것은 동적 페이지를 보여주는 도구로 API 단점을 설명하고 기록하며 실행할 수 있습니다.내 모습이야.

    예시 게시물 (또는 그 어떠한 조작) 을 보면 예시 모드와 응답 코드를 볼 수 있습니다.

    ASP의 이전 버전에서NET 코어, Swashback 패키지를 수동으로 다운로드하고, 중간부품을 설정하며, launchSettings.json 파일을 선택적으로 변경해야 합니다.이제 ASP를 사용합니다.네트워크 핵심 5, 자동 베이킹.
    기본 OpenAPI에서 지원하는 주요 드라이버 중 하나는 the integration with Azure API Management입니다.OpenAPI 지원으로 VisualStudio 출시 경험은 Azure API 관리로 API를 자동으로 가져오는 추가 단계를 제공합니다.구름 위로 가자!

    사용 방법 및 종료 선택 방법


    ASP를 만들면NET Core 5 웹 API 항목에는 기본적으로 활성화된 OpenAPI 지원 사용 확인란이 표시됩니다.만약 네가 원하지 않는다면 선택을 취소해라.

    API 프로젝트를 만들려면 dotnet new webapi을 사용하십시오.OpenAPI 지원을 종료하려면 dotnet new webapi --no-openapi true을 실행하십시오.

    중간부품과 시작 설정을 검증합니다.json


    당신이 프로젝트를 만든 후에 우리는 이 모든 것이 우리를 위해 완성되었다는 것을 볼 수 있습니다.창문을 열면csproj 파일, 참조:
    <ItemGroup>
        <PackageReference Include="Swashbuckle.AspNetCore" Version="5.6.3" />
    </ItemGroup>
    
    그리고 ConfigureServicesStartup.cs 메서드에서 정의되고 주입된 Swagger 문서 속성을 볼 수 있습니다(이 정보는 Swagger UI 페이지의 맨 위에 나타납니다).당신은 definitely add more to this을 선택할 수 있습니다.
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddControllers();
        services.AddSwaggerGen(c =>
        {
            c.SwaggerDoc("v1", new OpenApiInfo { Title = "HttpReplApi", Version = "v1" });
        });
    }
    
    동일한 파일의 Configure 방법에서는 정적 파일 중간부품의 구성을 볼 수 있습니다.
    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
            app.UseSwagger();
            app.UseSwaggerUI(c =>
            {
                c.SwaggerEndpoint("/swagger/v1/swagger.json", "HttpReplApi v1");
            });
        }
    
        // other services removed for brevity
    }
    
    그리고 launchSettings.json에서는 프로젝트가 외로운 공백 페이지가 아닌 /swagger 경로의 Swigger UI 페이지를 시작하는 것을 볼 수 있습니다.
    {
      "profiles": {
        "HttpReplApi": {
          "commandName": "Project",
          "dotnetRunMessages": "true",
          "launchBrowser": true,
          "launchUrl": "swagger",
          "applicationUrl": "https://localhost:5001;http://localhost:5000",
          "environmentVariables": {
            "ASPNETCORE_ENVIRONMENT": "Development"
          }
        }
      }
    }
    
    이제 너는 자신을 위해 설정을 다 했으니, 너는 마을에 가서 너의 API를 기록할 수 있다.당신은 add XML documentationdata annotations 두 가지 간단한 방법을 선택하여 자신감을 높일 수 있습니다.예를 들어 Produces 주석은 예상된 상태 코드를 정의하는 데 도움이 된다.
    my BandsController.cs 부터 Produces annotations을 많이 사용했습니다.
    [HttpDelete("{id}")]
    [ProducesResponseType(StatusCodes.Status204NoContent)]
    [ProducesResponseType(StatusCodes.Status404NotFound)]
    [ProducesDefaultResponseType]
    public async Task<IActionResult> Delete(int id)
    {
      // delete by id logic
    }
    
    기본적으로 사용할 수 있는 것을 좋아하지만, 템플릿에서 OpenAPI 비계를 더 많이 보길 바랍니다.이것은 약간 고집스러울 수 있지만, 기본 Produces 컨트롤러에 WeatherForecast 주석을 추가하면, 상자를 열면 바로 사용할 수 있는 Swigger 개발자의 체험을 더욱 잘 사용할 수 있다. (지금은 상자를 열면 바로 사용할 수 있기 때문이다.)

    HttpRepl을 사용하면 좋은 명령줄 체험을 얻을 수 있습니다


    HttpRepl을 사용하여 ASP를 테스트할 수 있습니다.NET 코어 웹 API는 명령줄에서 빠르고 쉽게 액세스할 수 있습니다.

    설치하다.


    HttpRepl을 응용 프로그램으로 설치할 수 있습니다.NET Core Global Tool -NET Core CLI:
    dotnet tool install -g Microsoft.dotnet-httprepl
    
    전 세계적인 도구로서, 너는 어느 곳에서든지 그것을 운행할 수 있다.

    기본 작업


    시작하려면 애플리케이션을 시작하여 httprepl에서 연결할 수 있습니다.
    httprepl https://localhost:5001
    
    만약 내가 ls 또는 dir을 한다면 나는 나의 단점을 볼 수 있다.

    /bands 포트에서 get을 실행하려면 제목이 있는 응답 부하를 받을 것입니다.

    그리고 저는 get {id}이 id를 통해 Band을 획득했다고 말할 수 있습니다.

    기본 편집기를 사용하여 데이터 수정


    데이터를 업데이트하고 싶을 때 무슨 일이 일어날까요?너는 이렇게 할 수 있다..
    post --content "{"id":2,"name":"Tool"}"
    
    ...하지만 이것은 가장 간단한 상황에만 적용된다.요청 주체를 처리하기 위해 기본 텍스트 편집기를 설정해야 합니다.요청을 구성할 수 있으며 HttpRepl은 탭이나 창을 저장하고 닫을 때까지 기다립니다.
    HttpRepl에서 기본 편집기를 비롯한 다양한 기본 설정을 지정할 수 있습니다.Windows에서 Visual Studio 코드를 사용하기 때문에 비슷한 작업을 수행합니다.
    pref set editor.command.default "C:\Program Files\Microsoft VS Code\Code.exe"
    
    Visual Studio 코드를 사용하는 경우 VS 코드가 닫힌 파일을 반환하기 전에 "-wait"플래그를 전달해야 합니다.bash
    pref set editor.command.default.arguments "--wait"

    You can also set various other preferences, like color and indentation.

    Now, when you say post VS 코드는 기본 요청 본문이 있는 .tmp 파일을 단점에서 열고 저장하고 닫기를 기다립니다.이 게시물은 아주 성공적으로 처리되었을 것이다.

    ID가 있으면 put 5을 사용하여 동일한 절차를 수행하고 get 5을 실행하여 변경 사항을 확인할 수 있습니다.

    만약 내가 나의 자원을 삭제하고 싶다면, 나는 delete 5을 실행할 수 있다. 그것은 사라질 것이다.나는 트위터에 내가 크루드 행동에서 자전거를 타는 영상을 올렸다.

    I love HttpRepl. Check it out: going through the big four HTTP verbs in just 34 seconds!

    This isn't a race, and your models will be much more complex obviously, but it's a good demo of how fast your API development feedback can be.

    cc/ pic.twitter.com/6w41j5esOk

    — Dave ( )


    스크립트로 중복 제거


    만약 내가 같은 테스트 장면을 사용하고 있다는 것을 발견한다면, 나는 이 명령들을 사용할 수 있다.txt 파일이 아닙니다.예를 들어api 스크립트를 만들었습니다.httprepl 세션의 루트 디렉토리에서 실행되는 txt 파일:bash
    cd Bands
    ls
    get
    post --content "{"id": 20, "name": "The Blue Medium Chili Peppers"}"
    put 20 --content "{"id": 20, "name": "The Red Mild Chili Peppers"}"
    get 20
    delete 20

    Then I can run it using run {path_to_script} .

    HttpRepl 구성에 대한 자세한 내용


    이것은 간단한 연습이지만, 당신은 더 많이 할 수 있습니다.강력한 구성 옵션이 인상적입니다.이것은 OpenAPI 설명, 상세한 로그 기록, 기본 설정 설정, 설정 형식, 사용자 정의 제목과 흐름, 파일에 기록, 기타 HTTP 술어 사용, 보호된 노드 테스트, Azure 위탁 관리 노드에 접근, HttpRepl을 시작하기 위한 도구까지 설정합니다.
    이 모든 정보는 official doc,에서 찾을 수 있으며 our friend은 매우 잘한다.

    마무리


    본고에서 OpenAPI와 Swagger 간의 차이점을 논의했고 ASP에서 기본적으로 Swagger UI를 사용했다.NET 핵심 웹 API 프로젝트 및 HttpRepl 도구 사용 방법
    예전과 같이, 당신이 이 공구들을 사용한 경험을 저에게 알려 주십시오.

    좋은 웹페이지 즐겨찾기