2017-10-01から1ヶ月間の記事一覧

【Go】Echo JsonにTemplateから生成したHTMLを埋め込んで返す

今回やりたかったことは以下。 ・HTMLのテンプレートを変数等に定義しておく。 ・テンプレートを元に動的な部分をHTMLに埋め込む。 ・生成したHTMLをJSONにいれてレスポンスとして返す。 package main import( "net/http" "github.com/labstack/echo" ) // V…

【redis】データのセットと取得するコマンド

Redisで扱えるデータ型いくつかあるようだけど今回扱うのはString型で単純にKeyとValueをセットできるようにコマンドメモしておく。 配列とかハッシュ型もあるけど、自分の用途だったらjsonを保存してアプリ側でデータをゴニョゴニョするかも。1つセット $ s…

glideでlogrusのインストールエラー対応

Go

glideでgorm入れようとしたら突然logrusのエラーが。。。 [ERROR] Update failed for github.com/Sirupsen/logrus: The Remote does not match the VCS endpoint [ERROR] Could not update packages: The Remote does not match the VCS endpoint意味わから…

【Go】Echo アプリログ出力処理(複数ファイルへ)

実際使おうとすると調べる内容が細かい。。けどメモ。 logrusというのを使ってみる。ローテションはとりあえず考えない。log/log.go package log import ( "os" "fmt" "github.com/Sirupsen/logrus" ) var AppLog = logrus.New() var AppLog2 = logrus.New()…

【Go】Echo InternalServerErrorとNotFoundエラーを発生させる

こんなことできるのかmain.go package main import ( "net/http" "github.com/labstack/echo" ) func main() { e := echo.New() e.GET("/users", func(c echo.Contet) error { // エラーを返す return echo.NewHTTPError(http.StatusInternalServerError, "S…

【Go】Echo エラー処理を実装する

apiサーバーの実装でとりあえずのエラー処理中。とりあえず以下をハンドリングするような想定で。 ・ビジネスエラー ・システムエラー ・404エラー ・その他サーバーエラーディレクトリ構成はこんな感じ $ tree -L 3 . └── app ├── controller │ └── traking…

【Go】Echo Controllerを別Packageに分割する

細かい話だけどecho的には特にルールは決まっていなそう。main.go package main import ( "github.com/labstack/echo" "app/controller" ) func main() { e := echo.New() e.GET("/members", controller.GetMember()) e.POST("/members", controller.PostMem…

【Go】Echo JSONを返す

echoでjsonを返すサンプル package main import( "net/http" "github.com/labstack/echo" ) // レスポンスを表す構造体を定義 type Member struct { Id int `json:"id"` Name string `json:"name"` } func main() { e := echo.New() e.GET("/members", func(…

macにgoをインストールする手順メモ

Go

1台のPCで複数バージョンのGoを使用したいのでgvm(Go Version Manger)を使用する。https://github.com/moovweb/gvm ドキュメントどおりにやったらすんなり入った。Mac使ってるので「Mac OS X Requirements」のコマンド実行準備 $ brew update $ brew install…

labelクリックでinputにfocusする iOS対応

スマホで言えばこんなUIの入力フォーム。 この場合、画面の左半分がlabelで右半分がinput。で、気がきかないから気にしてなかったのだが、labelをタップしても入力できないということで親切でないということで修正しようとしたらちょっとはまったのでメモし…

【ionic2】ログイン機能を実装する

はじめに 今回やりたかったのは、まぁ普通のログイン機能をもつアプリ。実装したい要件としては以下 ・未ログインの場合は、ログイン画面を表示。 ・ログイン済の場合は、他の画面が見れる。実装方法としては以下のような形で行ってみた。 ・ログイン済みか…

【ionic2】apiリクエストをproviderで共通処理化する

はじめに 今回やりたかったことは以下 ・APIのURLを開発と本番で切り替えられるようにしたい ・アプリ全体で認証トークンをhttpヘッダーに含めたいこれらを満たすAPIリクエストの共通処理実装したのでメモしておく。 APIのURLを開発と本番で切り替える こち…

【rails】authenticate_with_http_token を使ってapiの認証機能を実装する

はじめに 今回やりたかったことはアプリからのリクエストを受け付けるapiの開発。やりたいことと流れは以下のようなイメージ・Emailとパスワードでログインを行う ・ログインに成功したらトークンと有効期限を発行してクライアントに返す ・クライアントは毎…

rails console で group by の結果を確認

やりかったことはemailが重複しているレコードの件数をしらべたかっただけ。 実行されているSQLが期待通りだったのでこれでいいのかと思ってたけど、全然期待した結果にならない。。 $ User.select('email,count(*)').group('email') > User.select('email,c…

【ionic2】ionicPageで各画面をurlに対応させる

はじめに ionic1のルーティングまわりはui-routerで検索すれば色々出て来たけどionic2で何で検索すればよいのかまだよくわかってないけどとりあえずやり方はわかったのでメモしておく。デバッグのときとかはブラウザでリロードしたいし。あれ、けど目的はそ…

【ionic2】画面遷移のアニメーションを変更する

やりたかったこととしては画面の遷移の際のアニメーションでandroidでもiosみたいに左から右にスライドするようにしたいとういこと。 本来はプラットフォームごとに奨励されているアニメーションを使うべきだとは思うのだがやっぱりiosをベースで考えている…

【ionic2】無限スクロールの使い方

なかなか手をだせにずにいたionic2を次の案件では使えるように準備中。とりあえずionic1でできてたことをionic2でもできるようになることが当面の目標。今回はapiから取得したjsonからリスト表示で、無限スクロールを実装してみる。blankでプロジェクト作成 …

rails5のapiモードを試した

はじめに 勉強もかねて簡単なapiをrailsで実装してみる。やりたいことは以下・ローカルPCで動作させてみる ・apiモード使ってjsonを返す ・dbからデータを取得する ・ページングに対応する ローカルPCで動作させてみる まずは rbenv を使って ruby環境でrail…

【angularjs】セレクトボックス(プルダウン)の使い方メモ

angularjs使うときはまたやりそうなのでメモしておくまず、配列はどこかに一箇所に定義しておく angular.module('myApp') .value('define', { 'area': { 1: '北海道', 2: '東北', 3: '関東', ・・・ }, });テンプレートから参照できるようにコントローラで $…

【ionic】angular-messageで入力フォームのバリデーションとエラーメッセージを実装する

はじめに 今回やりたかったことは入力フォームにバリデーション機能を実装して、不備があった場合は送信ボタンを押せなくして不備の内容を画面に表示するということ。今回は angular-messages というライブラリを使った。angular-messagesのインストール $ b…

【emacs】faceの文字色と背景色を変更する手順メモ

新しいモードを使うときにデフォルト色がちらつくことがよくある。毎回調べてる気がするので自分用にメモしておく。 ## 1. 色を変えたいface名を調べる M-x describe-face ## 2. 一覧が表示されるのでface名で検索 M-x list-faces-display ## 3. 該当のface…

【mysql】コミット前のselectの結果が更新前のままだった理由

ネタみたいだけど、また初歩的なミスをしたのでメモ。mysqlクライアントから確認 $ begin; $ insert into tests(id, name) values(1, 'test'); $ select count(*) from tests where id = 1; +----------+ | count(*) | +----------+ | 1 | +----------+期待…

【php】curl使い方メモ - GET,POST,PUT,DELETEとJSON

php

今更な内容だけど。たまにcurlで外部のAPI叩く必要があるときにいつも同じこと調べてる気がするのでコピペ用にまとめておく。 GET、POST、PUT、DELETEメソッドでリクエストして、パラメータがちゃんと送れているか確認するためのスクリプト。ついでにパラメ…