<commit_before># api_example

RailsでAPIサーバを作る為の、簡単なサンプルを作ってみました。
API作らなきゃいけないけど、Railsわかんないって時とかに見ると、良いかもしれません。

あと、あわせて、Jmeterの話をしたかったので、JmeterのファイルをJmeterディレクトリに入れておきました。

ダウンロードはJmeterの公式サイトより。

http://jmeter.apache.org/

# 使い方

1. bundle install

	`bundle`とコマンドを打って実行する
	
2. database.ymlを作成

	`cp config/database.yml.default config/database.yml`

3. databse.ymlの内容を編集
	
        default: &default
            adapter: mysql2
            encoding: utf8
            pool: 5
            username: <mysqlのユーザ名を入力>
            password: <<PASSWORD>を入力>
            socket: /tmp/mysql.sock
        
  
4. Databaseを作成

	`rake db:create`

5. マイグレーションを実行

	`rake db:migrate`

6. secrets.ymlを作成

	`touch config/secrets.yml`


7. secret_key_baseを作成

	`vim config/secrets.yml`

8. secret_key_baseの中身を記述

	`rake secret`
	で出力されてきた値を下記の[A]に記述。
	
	同様にBにもsecret_keyを入れなければいけないが、それぞれ違う値を入れたほうが良いため、もう一度実行し、値をメモって、[B]に代入

        development:
          secret_key_base: [A]

        test:
          secret_key_base: [B]

        production:
          secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>

9. サーバを実行

	`rails s`


# 生成されるAPI

`rake routes`で、下記の内容が見れます

通常の方法で、ユーザ情報を追加するURL

|Prefix|Verb|URI Pattern|Controller#Action|
|:-----------:|:-----------:|:------------:|:------------:|  
|users|GET|/users(.:format)|users#index|
|          |POST|/users(.:format)          |users#create|
|new_user|GET|/users/new(.:format)|users#new|
|edit_user|GET|/users/:id/edit(.:format)|users#edit|
|user|GET|/users/:id(.:format)|users#show|
|          |PATCH|/users/:id(.:format)|users#update|
|          |PUT|/users/:id(.:format)|users#update|
|          |DELETE|/users/:id(.:format)|users#destroy|

API用のURL

|Prefix|Verb|URI Pattern|Controller#Action|
|:-----------:|:-----------:|:------------:|:------------:|  
|api_users|GET|/api/users(.:format)|api/users#index
|          |POST|/api/users(.:format)|api/users#create
|api_user|GET|/api/users/:id(.:format)|api/users#show|
|          |PATCH|/api/users/:id(.:format)|api/users#update|
|          |PUT|/api/users/:id(.:format)|api/users#update|
|          |DELETE|/api/users/:id(.:format)|api/users#destroy|


# 参考文献

[Railsドキュメント - railsコマンド(rails)](http://railsdoc.com/rails)

→主に、ControllerやModelの作成時に使います。

[Railsドキュメント - ルーティング(routes)](http://railsdoc.com/routes)

→routingに使います。

[Railsドキュメント - 検証(validation)](http://railsdoc.com/validation)

→validationに使います。<commit_msg>API一覧表に用途を追加<commit_after># api_example

RailsでAPIサーバを作る為の、簡単なサンプルを作ってみました。
API作らなきゃいけないけど、Railsわかんないって時とかに見ると、良いかもしれません。

あと、あわせて、Jmeterの話をしたかったので、JmeterのファイルをJmeterディレクトリに入れておきました。

ダウンロードはJmeterの公式サイトより。

http://jmeter.apache.org/

# 使い方

1. bundle install

	`bundle`とコマンドを打って実行する
	
2. database.ymlを作成

	`cp config/database.yml.default config/database.yml`

3. databse.ymlの内容を編集
	
        default: &default
            adapter: mysql2
            encoding: utf8
            pool: 5
            username: <mysqlのユーザ名を入力>
            password: <<PASSWORD>を入力>
            socket: /tmp/mysql.sock
        
  
4. Databaseを作成

	`rake db:create`

5. マイグレーションを実行

	`rake db:migrate`

6. secrets.ymlを作成

	`touch config/secrets.yml`


7. secret_key_baseを作成

	`vim config/secrets.yml`

8. secret_key_baseの中身を記述

	`rake secret`
	で出力されてきた値を下記の[A]に記述。
	
	同様にBにもsecret_keyを入れなければいけないが、それぞれ違う値を入れたほうが良いため、もう一度実行し、値をメモって、[B]に代入

        development:
          secret_key_base: [A]

        test:
          secret_key_base: [B]

        production:
          secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>

9. サーバを実行

	`rails s`


# 生成されるAPI

`rake routes`で、下記の内容が見れます

通常の方法で、ユーザ情報を追加するURL

|Prefix|Verb|URI Pattern|Controller#Action|用途|
|:-----------:|:-----------:|:------------:|:------------:|:------------|
|users|GET|/users(.:format)|users#index|全ユーザの情報を一覧表示|
|          |POST|/users(.:format)          |users#create|ユーザ情報を作成|
|new_user|GET|/users/new(.:format)|users#new|ユーザ情報作成画面|
|edit_user|GET|/users/:id/edit(.:format)|users#edit|特定のユーザ情報編集|
|user|GET|/users/:id(.:format)|users#show|特定のユーザの情報を表示|
|          |PATCH|/users/:id(.:format)|users#update|特定のユーザの情報を更新|
|          |PUT|/users/:id(.:format)|users#update|特定のユーザの情報を更新|
|          |DELETE|/users/:id(.:format)|users#destroy|特定のユーザの情報を削除|

API用のURL

|Prefix|Verb|URI Pattern|Controller#Action|用途|
|:-----------:|:-----------:|:------------:|:------------:|:------------|
|api_users|GET|/api/users(.:format)|api/users#index|全ユーザの情報を一覧表示|
|          |POST|/api/users(.:format)|api/users#create|ユーザ情報を作成|
|api_user|GET|/api/users/:id(.:format)|api/users#show|特定のユーザの情報を表示|
|          |PATCH|/api/users/:id(.:format)|api/users#update|特定のユーザの情報を更新|
|          |PUT|/api/users/:id(.:format)|api/users#update|特定のユーザの情報を更新|
|          |DELETE|/api/users/:id(.:format)|api/users#destroy|特定のユーザの情報を削除|


# 参考文献

[Railsドキュメント - railsコマンド(rails)](http://railsdoc.com/rails)

→主に、ControllerやModelの作成時に使います。

[Railsドキュメント - ルーティング(routes)](http://railsdoc.com/routes)

→routingに使います。

[Railsドキュメント - 検証(validation)](http://railsdoc.com/validation)

→validationに使います。
{'fraction_non_alphanumeric': 0.19585161547666532, 'fraction_numerical': 0.004786597526924611, 'mean_word_length': 3.1618257261410787, 'pattern_counts': {'":': 0, '<': 11, '<?xml version=': 0, '>': 11, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3533682', 'n_tokens_mistral': 2489, 'n_tokens_neox': 2428, 'n_words': 203}