
Rack-App Gpt Assistant
rack-app 단순성과 유지 관리에 중점을 둔 미니멀리스트 웹 프레임 워크입니다. 이 프레임 워크는 노련한 웹 개발자가 사용하기위한 것입니다.
rack-app 의존성을 최대한 적게 유지하면서 기능적 및 미니멀리스트 랙 기반 애플리케이션을 작성하는 데 중점을 두어 정의한 것 이상을 수행 할 수 없습니다.
라우팅은 접두사 트리를 사용하므로 많은 API 엔드 포인트를 추가하면 라우팅 조회 시간에 영향을 미치지 않습니다.
Sinatra , grape 및 rack 에 영감을 받았습니다. 퍼블릭 클라우드에서 실행되는 백엔드 API에 전원을 공급하는 프로덕션에 사용됩니다.
프레임 워크는 안정적으로 간주됩니다. 대부분의 커스텀 엣지 케이스는 구성으로 해결 될 수 있기 때문에 실제 사용 사례없이 프레임 워크를 Creep The Framework를 특징으로 할 계획이 없습니다.
다음에 랙이 HTTP2에 대한 최종 지원을 제공 할 때 추가 업데이트를받을 것입니다.
문제가있는 경우 매주 문제 탭을 확인하거나 답변하고 답변하거나 수정 사항을 구현합니다.
프레임 워크의 유일한 종속성은 rack 보석이므로 코드베이스를 너무 자주 업데이트 할 필요가 없습니다.
건배와 행복한 코딩!
이 라인을 응용 프로그램의 보석에 추가하십시오.
gem 'rack-app'그런 다음 실행 :
$ bundle
또는 직접 설치하십시오.
$ gem install rack-app
예, 이미 Heroku 호스팅 마이크로 서비스에 전원을 공급하고 있습니다.
Rack-App의 라우터는 공통 접두사를 크게 사용하는 트리 구조에 의존하며 기본적으로 소형 접두사 트리 (또는 단지 래디 픽스 트리 )입니다. 공통 접두사가있는 노드도 공통 부모를 공유합니다.
Daniel Nagy
Daniel Szpisjak
제레미 에반스
데이비드 부시
Thesmartnik
require 'rack/app'
class App < Rack :: App
desc 'some hello endpoint'
get '/hello' do
'Hello World!'
end
end require 'rack/app'
class App < Rack :: App
mount SomeAppClass
headers 'Access-Control-Allow-Origin' => '*' ,
'Access-Control-Expose-Headers' => 'X-My-Custom-Header, X-Another-Custom-Header'
serializer do | object |
object . to_s
end
desc 'some hello endpoint'
validate_params do
required 'words' , :class => Array , :of => String , :desc => 'some word' , :example => [ 'pug' ]
optional 'word' , :class => String , :desc => 'one word' , :example => 'pug'
optional 'boolean' , :class => :boolean , :desc => 'boolean value' , :example => true
end
get '/hello' do
puts ( params [ 'words' ] )
'Hello World!'
end
namespace '/users' do
desc 'some restful endpoint'
get '/:user_id' do
response . status = 201
params [ 'user_id' ] #=> restful parameter :user_id
say #=> "hello world!"
end
end
desc 'some endpoint that has error and will be rescued'
get '/make_error' do
raise ( StandardError , 'error block rescued' )
end
def say
"hello #{ params [ 'user_id' ] } !"
end
error StandardError , NoMethodError do | ex |
{ :error => ex . message }
end
root '/hello'
get '/stream' do
stream do | out |
out << 'data row'
end
end
end요청 메소드와 RACK :: 응답으로 RACK :: 요청에 액세스 할 수 있습니다.
기본적으로 응답 '본문'에 아무것도 쓰지 않으면 엔드 포인트 블록 로직 리턴이 사용됩니다.
종속성 목록을 확장하지 않으면 Front_end Extension을 사용하여 템플릿 기반 웹 응용 프로그램을 작성할 수 있습니다.
require 'rack/app'
require 'rack/app/front_end' # You need to add `gem 'rack-app-front_end'` to your Gemfile
class App < Rack :: App
apply_extensions :front_end
helpers do
def method_that_can_be_used_in_template
'hello world!'
end
end
# use ./app/layout.html.erb as layout, this is optionable
layout 'layout.html.erb'
# at '/' the endpoint will serve (render)
# the ./app/index.html content as response body and wrap around with layout if the layout is given
get '/' do
render 'index.html'
end
end이 예제는 Layout.html.erb 및 Index.html과 같은 템플릿이 포함 된 "app.rb"파일 옆의 "앱"폴더를 기대합니다.
테스트 용 사용 랙/테스트 또는 랙 애플리케이션을위한 단위 테스트를위한 번들 테스트 모듈
require 'spec_helper'
require 'rack/app/test'
describe App do
include Rack :: App :: Test
rack_app described_class
describe '/hello' do
# example for params and headers and payload use
subject { get ( url : '/hello' , params : { 'dog' => 'meat' } , headers : { 'X-Cat' => 'fur' } , payload : 'some string' ) }
it { expect ( subject . status ) . to eq 200 }
it { expect ( subject . body ) . to eq "Hello World!" }
end
describe '/users/:user_id' do
# restful endpoint example
subject { get ( url : '/users/1234' ) }
it { expect ( subject . body ) . to eq 'hello 1234!' }
it { expect ( subject . status ) . to eq 201 }
end
describe '/make_error' do
# error handled example
subject { get ( url : '/make_error' ) }
it { expect ( subject . body ) . to eq '{:error=>"error block rescued"}' }
end
end
공식 웹 사이트 예제 방법
랙 :: 앱 팀 Github 리포지토리
기초적인
Escher Authorized API
레포를 확인한 후 bin/setup 실행하여 종속성을 설치하십시오. 그런 다음 rake spec 실행하여 테스트를 실행하십시오. 실험 할 수있는 대화식 프롬프트를 위해 bin/console 실행할 수도 있습니다.
이 보석을 로컬 컴퓨터에 설치하려면 bundle exec rake install 실행하십시오. 새 버전을 해제하려면 version.rb 에서 버전 번호를 업데이트 한 다음 버전에 대한 GIT bundle exec rake release 를 생성하고 GIT 커밋 및 태그를 누르고 .gem 파일을 rubygems.org로 누릅니다.
https://github.com/rack-app/rack-app (https://github.com/rack-app/rack-app)에서 버그 보고서 및 풀 요청은 환영합니다.이 프로젝트는 협업을위한 안전하고 환영하는 공간이되기위한 것이며 기고자는 기고자 계약 규범을 준수해야합니다.
Rack :: App은 Apache 라이센스 V2 라이센스에 따라 무료 소프트웨어입니다. 로고는 Zsófia Gebauer가 설계했습니다. Copyright © 2015 Adam Luzsi입니다. 모든 권리 보유.