Railsのノリでparamsを見ても空のHashになってる. GETメソッドはparamsでも大丈夫なんだけど… とりあえずrequest.bodyを読み込んでJSONにパースすることで解決. # coding: utf-8 require 'sinatra' require 'json' post '/', provides: :json do params = JSON.parse request.body.read end # 後略
![【Sinatra】POSTメソッドでJSONを受け取りたい - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/4d6c393ddfe9a58eb8a95ff98234c4793f576af6/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9JUUzJTgwJTkwU2luYXRyYSVFMyU4MCU5MVBPU1QlRTMlODMlQTElRTMlODIlQkQlRTMlODMlODMlRTMlODMlODklRTMlODElQTdKU09OJUUzJTgyJTkyJUU1JThGJTk3JUUzJTgxJTkxJUU1JThGJTk2JUUzJTgyJThBJUUzJTgxJTlGJUUzJTgxJTg0JnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LWNsaXA9ZWxsaXBzaXMmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz02OTFkZWFhZDU0YmNjNmI5NzZmMTRjODI5ZTc0OTJkNw%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwaXp1bWluNTIxMCZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9MzEwZjExZWRjYmQwNGVkMDg1MGZkYTI1N2EyNDViNGY%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3Dd204aaafc93be14eb4edbc82238c3bea)
firewall-cmd --add-port=22/tcp --zone=public --permanent こんな感じで開放できます。 その他は以下のような感じ。 # 許可されているサービスやポートの一覧を表示 firewall-cmd --list-all --zone=public firewall-cmd --list-services --zone=public firewall-cmd --list-ports --zone=public # 許可するサービスの追加と削除 firewall-cmd --add-service=ssh --zone=public --permanent firewall-cmd --remove-service=ssh --zone=public --permanent # 許可するポートの追加と削除 firewall-cmd --add-p
初めてSinatraでアプリを作ったので覚えたことまとめ。 事情によりローカルはApach + Passenger、リモートはNginx + Unicornなので、一応両方で動くようまとめ・・・たつもりなのですが。 元記事 下記エントリの転載になります。 【Ruby】Sinatraで、速攻でWebサイトを公開するための環境構築 - rokuroFire 事前準備 Ruby、bundlerのインストール Apacheの場合、Passengerの設定をしておく Nginxの場合、Unicornのgemをインストールしておく アプリのファイル構成 最小構成は下記。 projectname/ -main.rb // Controller -config.ru // Rackの設定ファイル。最初に実行されるファイル -views/ -index.haml // ビューのテンプレート(haml)ファイ
ローカルで動かしていたSinatraをさくらvpsで動かそうと思ったら、アクセスしても繋がらない問題に出くわしました(;´д`) 検索しても意外と情報が少なかったのでメモ残しときます。 症状 Sinatraを使ったコードを実行すると、デフォルトだと4567番ポートで立ち上がるのですが、アクセスしても繋がらない!! $ bundle exec ruby hoge.rb [2013-05-17 23:58:37] INFO WEBrick 1.3.1 [2013-05-17 23:58:37] INFO ruby 1.9.3 (2013-02-06) [x86_64-linux] == Sinatra/1.4.2 has taken the stage on 4567 for development with backup from WEBrick [2013-05-17 23:58:37]
Rubyを使ったウェブサービスの作成はRuby on Railsが有名らしい 調べたところRailsは機能フル装備で中上級者用とあったので軽量のSinatraというパッケージを利用する。 参考: たった5行のコードでWebサービス!Sinatra, Rubyとは? 引用: Sinatra入門 (全17回) - ドットインストール 01 Sinatraとはなにか? Fetching: rack-1.6.0.gem (100%) Successfully installed rack-1.6.0 Fetching: tilt-1.4.1.gem (100%) Successfully installed tilt-1.4.1 Fetching: rack-protection-1.5.3.gem (100%) Successfully installed rack-protection-1.5
require 'sinatra' ['/one', '/two', '/three'].each do |route| get rounte do "Triggered #{route} via GET" end post route do "Triggered #{route} via POST" end end RESTリクエストのパラメータを受け取りたい 例えばこんなリクエスト http://my.server.address/function?key1=value1&key2=value2&key3=value3 こんなふうに受けることができる
角幸一郎 氏 actcat CEO。徳島大学在学中からフリーランスとしてiPhoneアプリを複数リリース、累計200万DL超。 新卒として入社した楽天を2010年末に退職後、CyberAgent、D.A.consortiumなどでサービスを企画・設計・開発。2012年に株式会社アクトキャットを設立。同社ではシードアクセラレーター、Open Network Labより投資頂き、エンジニア学習サイト、StudyTechなどを提供中。 サービス・アプリの立ち上げに突き抜けたスキルセットに更新し続けるエンジニア。 ※この記事の内容は2013年7月20日時点の情報です。 今回のコースで学べること 「Rubyで簡単、マッシュアップサービスを公開してみよう!」を目指します。 Rubyというプログラミング言語でTwitter APIなどを利用した、マッシュアップサイトが作れるようになります。 たとえば、「
SinatraでJSONを返却する簡易APIを作成してherokuにプッシュして使うまでをまとめてみました投稿者: Naoki 投稿日: 2014-03-22 もともとアプリ開発用に簡単なAPIを作りたいなと思ってここ数日Sinatraなどをいじっていました。その成果をまとめてみたいと思います。ぜんぜん、簡易じゃなかったです。herokuまでやらなければほんとに簡易なんですけどね。あと、はっきり言ってダサいコードなんですが、まぁ(><) 必要なもの sqlite3 ruby bundler heroku toolbelt herokuのアカウント 事前にお伝えしたいこと sample-sinatra-apiはherokuに登録したアプリ名です。適宜ご自身のアプリ名に読み替えて下さい。 もっと良い方法がたくさんあると思います。あと、数日前にHerokuやSinatraに触った初心者が書いたフ
ども、cloudpack の かっぱ (@inokara) です。 自称インフラエンジ二屋でも… ちょっとしたプロキシの設定等は Sinatra を利用すると俄然捗って嬉しいけど Sinatra からログ吐ければ作業がもっと捗るのにッて思ったら意外に簡単だったのでメモ。 logger でお手軽に お手軽に logger を使うだけ。 require 'sinatra' require 'sinatra/reloader' require 'logger' logger = Logger.new('sinatra.log') post '/foo' do http_headers = request.env.select { |k, v| k.start_with?('HTTP_') } logger.info http_headers logger.info params['key1']
はじめに 最近、RubyでAPIサーバーの処理を記述する案件が多い、t.hondaです。Rubyでサーバー側の処理を記述すると言えばRuby on Railsを思い浮かべることが多いと思いますが、今回は別の選択肢となるSinatraを紹介したいと思います。 Sinatraについて Sinatraについては、公式ページに以下のような記述があります。 Sinatra is a DSL for quickly creating web applications in Ruby with minimal effort: Sinatra - Getting Started より 超訳すると「SinatraはRubyで最小限の労力で素早くWebアプリケーションを作るためのドメイン固有言語」という感じになるでしょうか・・・。この「ドメイン固有言語」であることが、Sinatraの特徴と言えると思います。こ
Sinatraと小さいAPIはとても相性がいい。 APIで返すものといえばJSONが最近は楽ですね。 まあ普通にrequire "json"して、#to_jsonすればよいのですが、 sinatra-contribにあるsinatra/jsonを使うのもよいかと思います。 Sinatraだけの場合 app.rb require "sinatra" require "json" get '/' do content_type :json data = { foo: "bar" } data.to_json end Sinatra::JSONを使う場合 Gemfile gem "sinatra" gem "sinatra-contrib" app.rb require "sinatra" require "sinatra/json" get '/' do data = { foo: "bar"
フルスタックがウリのRails。そこまで必要ないよ。と、ERBでゴリゴリ。メンドクセー。やっぱ、Railsで。などと、陽はまたのぼりくりかえしてーゆく。RubyのWebフレームワークは他にもあるけど。。軽くていいんだ。PHPを使いたくないだけなんだ。 そんな悩ましさを解消してくれるフレームワークを発見してしまいました。「Sinatra」でございます。こいつは、軽そうだ。 Sinatra サイトのトップページに書かれているコード。これが、サクサク感をかもし出してくれています。 require 'rubygems' require 'sinatra' get '/hi' do "Hello World!" end 説明読まなくても解るよ、これ。 日本語の解説スライドがあります。よく解る解説ー。 公式サイトのREADMEを読めば、だいたいOK。 Sinatra: README パラメータを取得し
View at: http://localhost:4567 The code you changed will not take effect until you restart the server. Please restart the server every time you change or use a code reloader like rerun or rack-unreloader. It is recommended to also run gem install puma, which Sinatra will pick up if available. Routes In Sinatra, a route is an HTTP method paired with a URL-matching pattern. Each route is associated
Rubyで暗号化したデータをJavaで復号化、またその逆を行ってみた。 今回はAES128ビットの暗号化モードCBC、パディングはPKCS#5で実施。 まずRuby側のコード。 require 'openssl' require 'base64' class CryptUtil def self.encrypt(pass, value) enc = OpenSSL::Cipher.new('aes-128-cbc') # 暗号化or復号化どちらを行うかセット(今回は暗号化)、復号化の場合はdecrypt enc.encrypt # ivを生成 iv = OpenSSL::Random.random_bytes(16) # 暗号化する際のキー文字列をセット enc.key = pass # ivをセット enc.iv = iv crypted = "" crypted << enc.upda
本記事は Windows(64bit) で Ruby 2.2.3 + Rails 4.2.4を参考にして、Rubyのインストールに関する情報を少し付け加えたものです。 Ruby等をゼロからインストール 動作確認 します。 環境 Windows10/64bitです。 手順 0. Rubyのインストール 0.1. rubyinstallerのダウンロードとインストール 本当は2.3を入れたかったのですが、rubyinstallerを使わないとうまくDevkitを使えずに詰んでしまったので、rubyinstallerを使います。 http://rubyinstaller.org/downloads/ この記事を書いた時点で最新のRuby 2.2.3 (x64)をダウンロードします。 環境変数Pathにbinを追加することを忘れないようにします。(チェックボックスに注意する) 特に何事もなく完了し
何件で分割するかを pagenate に指定する。 2. index.htmlの site.posts としている部分を paginator.postsに変更する --- --- <div class="home"> <h1>Posts</h1> <ul class="posts"> {{ "{% for post in paginator.posts " }}%} <li> <span class="post-date">{{ post.date | date: "%b %-d, %Y" }}</span> <a class="post-link" href="{{ post.url | prepend: site.baseurl }}">{{ post.title }}</a> {{ "{% for tag in post.tags " }}%} <a href="/blog/tag/
はじめに CentOS7では/etc/sysconfig/network-scripts/下のファイルをいじるんじゃないらしいです。 nmcliコマンド nmcliコマンドでネットワーク関連の確認、設定を行います。 接続情報の確認 $ nmcli device show GENERAL.デバイス: eno12 GENERAL.タイプ: ethernet GENERAL.HWADDR: 00:0C:29:0A:5B:74 GENERAL.MTU: 1500 GENERAL.状態: 100 (接続済み) GENERAL.接続: -- GENERAL.CON パス: /org/freedesktop/NetworkManager/ActiveConnection/0 WIRED-PROPERTIES.キャリア: オン IP4.アドレス[1]: ip = 192.168.248.128/24, g
CentOS 7をインストールして謎だったことの一つとして、ネットワーク名が今までの「eth0」みたいなやつから、「enp1s0」みたいな謎の文字列に変わった事がある。 気になったので調べてみた。 ネットワーク名は新しい命名規則に沿って自動的に作られる 調べていると、以下のブログに丁寧に説明が書いてあった。 Predictable Network Interface Names ざっくり訳すと以下の通り v197のsystemd/udevでは自動的に安定的なネットワークインターフェース名を割り当てる。 ローカルエリアネットワークに限らず、WLANやWWANに対しても割り当てる。 伝統的な ("eth0", "eth1", "wlan0", ...)といった命名規則はもうしない。 新しい命名規則では以下の嬉しい事がある。 OSが再起動してもインターフェース名が変わらない ハードウェアを追加し
ホーム CentOS7 VulsRepoのインストール CentOS7 Vulsのインストール CentOS7 OpenVAS(GVM)のインストール CentOS7 Webminのインストール CentOS7 Userminのインストール CentOS7 Cockpitのインストール CentOS7 Nginxでリダイレクト処理 CentOS7 NginxでCGI(Perl) CentOS7 NginxでPHP CentOS7 NginxでSSL証明書の設定(SNI含む) CentOS7 Nginxでバーチャルホスト CentOS7 Nginxのアクセス制限 CentOS7 Nginxの基本インストール CentOS7 ディスク容量チェック CentOS7 WordPressのインストール CentOS7 RainLoopのインストール CentOS7 PHPListのインストール Ce
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く