質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

REST

REST(Representational State Transfer)はwebアプリケーションの構築スタイルの一種です。HTTP GET/POSTによってリクエストを送信し、レスポンスはXMLで返されます。SOAPのようなRPCの構築と比べるとサーバからクライアントを分離することが出来る為、人気です。

GitHub

GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

GitHub Enterprise

GitHub Enterpriseは、GitHub社が開発している企業向けのソフトウェア開発プラットフォームです。GitHubとほぼ同じ機能を持ち、クローズな環境でGitHubを構築することができます。

Q&A

解決済

1回答

1343閲覧

Github APIからのBlob作成を行いたい

tanaka_k

総合スコア14

Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

REST

REST(Representational State Transfer)はwebアプリケーションの構築スタイルの一種です。HTTP GET/POSTによってリクエストを送信し、レスポンスはXMLで返されます。SOAPのようなRPCの構築と比べるとサーバからクライアントを分離することが出来る為、人気です。

GitHub

GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

GitHub Enterprise

GitHub Enterpriseは、GitHub社が開発している企業向けのソフトウェア開発プラットフォームです。GitHubとほぼ同じ機能を持ち、クローズな環境でGitHubを構築することができます。

0グッド

0クリップ

投稿2020/03/24 09:19

Github APIからのBlob作成を行いたい

GithubのRest APIを用いて、jsよりコミットの作成を行おうと思っております。
公式ドキュメントに記載してある通りに実装し、作成手順の記載があるサイトも参考に行っております。
しかし、なぜか404になってしまい困っております。
ドキュメント通りであれば、存在しないはずがないと思うのですが...

発生している問題・エラーメッセージ

POST https://api.github.com/repos/[username]/[repositoryname]/git/blobs 404 (Not Found)

該当のソースコード

blob_data = { "content": "VHVlLCBTZXAgIDUsIDIwMTcgIDM6MTQ6MzIgUE0K", // 適当 "encoding": "base64" }; blob = new XMLHttpRequest(); blob.open('POST', "https://api.github.com/repos/[username]/[repositoryname]/git/blobs"); blob.setRequestHeader("Content-Type", "application/json"); blob.onload = () => { console.log(blob.response) }; blob.send(blob_data);

試したこと

参考サイトにおいては、②までは正常に行うことが出来ました。
また、コマンドからAdvanced REST clientを用いてブラウザからのリクエストも行ったのですが、404となりました。

補足情報(FW/ツールのバージョンなど)

Github REST API v3

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

解決しましたので、解決内容を記載しておきます。

①requesiheaderにAuthorizationを加える。
これはGithub内より取得してください。取得方法は参考サイトの2より取得できます。
②リクエストデータはJson文字列でしていする。

以下、最終的に通ったコードになります。([]内は適宜、ご自分の環境に合わせてください)

Javascript

1blob_data = { 2 "content": "VHVlLCBTZXAgIDUsIDIwMTcgIDM6MTQ6MzIgUE0K", 3 "encoding": "base64" 4}; 5blob = new XMLHttpRequest(); 6blob.open('POST', "https://api.github.com/repos/[username]/[repositoryname]/git/blobs"); 7blob.setRequestHeader("Authorization", "bearer [accessToken]"); 8blob.onload = () => { 9 console.log(blob.response) 10}; 11blob.send(JSON.stringify(blob_data));

投稿2020/03/24 11:21

tanaka_k

総合スコア14

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tanaka_k

2020/03/25 00:47

レスポンスをjsonで受け取りたい方は適宜、blob.responseType = 'json'; を追加してください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問