タグ付けされた質問 「api」

アプリケーションプログラミングインターフェイス(API)は、ソフトウェアが他のソフトウェアで使用されることを意図した仕様です。

4
Win32 APIの進化[終了]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 4年前に閉鎖されました。 Windows 32 APIは時間の経過とともに大きく変化しましたか?1998年のCharles Petzoldの著書「Programming Windows、5th Edition」には、関連する情報がまだ含まれていますか、それともほとんどが時代遅れ/古くなっていますか? Windows 32 APIに最近追加された顕著な例(ある場合)は何ですか?
11 books  c  windows  api 

2
子オブジェクトを投稿し、すべての親のすべての子を取得するためのAPIエンドポイントを設計するにはどうすればよいですか?
たとえば、クライアント、レポートなどのエンティティがあります。クライアントには多くのレポートがある可能性があり、単一のレポート管理のエンドポイントは次のようにネストする必要があると思います。 /clients/{client_id}/reports/{report_id} 1つのクライアントのすべてのレポートに関しては、エンドポイントが期待されます。 /clients/{client_id}/reports しかし、すべてのクライアントのすべてのレポートを取得して、APIの一貫性と適切な設計を維持するためのエンドポイントをどのように見ればよいか 私のアプローチ: (私はそれをいくつかのgoogle apiで見ました)それの代わりに「-」を使用し、それを「すべて」として解析します: /clients/-/reports これはエンドポイントのフォーマットを同じに保ちますが、少し変わって見え、この方法を示唆するrfcを見つけることができません。 すべてのレポートのためだけに別のエンドポイントを作成します。 /reports ただし、クライアントのレポートを取得するには、次のようにします。 /clients/{client_id}/reports エンドポイントをリファクタリングして、「クライアント」を親ではなく、単なるフィルタパラメータにします。 /reports?client={client_id} -1つのクライアントのレポート /reports -すべてのクライアントのレポート 特定のクライアントのレポートを投稿するための新しいエンドポイントを追加する場合、URLにパラメーターを持つPOSTリクエストになるため、見栄えが悪くなる可能性があります。 他にアイデアの提案はありますか?
11 rest  api  api-design 

4
サーバーでXMLを解析するか、プロキシを提供して、ブラウザで解析する必要がありますか?
サードパーティのAPIとのインターフェースが必要です。このAPIを使用して、エンドユーザーのブラウザー内からGET要求を作成し、XML応答を受信します。このデータは、ユーザーがデータを検索したり、決定に使用したりできるブラウザーベースのアプリケーションで使用されます。主な問題は、ほとんどのブラウザーがクロスドメインXMLの使用を制限しているため、単純に取得できないことです。 APIからのXML。 ただし、全体的なデータは基本的に2つのセットに分かれています。 最初のデータセットは公開されており、頻繁に更新する必要があるだけなので、サーバー側のすべてのユーザーがキャッシュできるため、トラフィックが大幅に軽減されます。 2番目のデータセットはプライベートであり、各ユーザーに個別です。このデータは、APIでもより頻繁に更新されます。これにより、キャッシュの効果が大幅に低下します。 スケーラビリティの理由から、サーバーの負荷をできるだけ小さくしたいと思います。 私の前に2つのオプションが表示されます。 XMLリクエストをサードパーティのサーバーにルーティングし、クライアントとサードパーティのAPIの間で直接やり取りするために使用できるプロキシを提供します。 サーバーにXMLからJSONへの変換を実行させ、不要な情報を削除します。これは基本的に、サーバー用の新しいAPIを作成することを意味します。これは、サードパーティAPIからのリクエストに変換されます ユーザーにデータを提供するための最良の方法は何ですか?(2つのオプションのいずれかである必要はありません)
11 javascript  api  xml  websites  json 

3
HTTPヘッダーを介してアクセストークンを送信しても安全ですか?
これは最初のRESTful Webサービスであり、セキュリティの問題が心配です。アクセストークンをHTTPヘッダー経由で送信しても安全ですか?例えば: POST /v1/i/resource HTTP/1.1 Content-Type: application/x-www-form-urlencoded Api-key: 5cac3297f0d9f46e1gh3k83881ba0980215cd71e Access_token: 080ab6bd49b138594ac9647dc929122adfb983c8 parameter1=foo&parameter2=bar を介して行われた接続SSL。また、scopeすべての属性として定義する必要があるものaccess token

1
トンネリングに関するREST APIルール
ただ、はでこれを読んでREST APIルールブック:GETとPOSTは、トンネル他のリクエストメソッドに使用することはできません。 トンネリングとは、メッセージの意図を覆い隠したり、虚偽の表現をしたり、プロトコルの透過性を損なうHTTPの悪用を指します。REST APIは、HTTP語彙が制限されているクライアントに対応するために、HTTPのリクエストメソッドを誤用してその設計を損なうことがあってはなりません。このセクションのルールで指定されているHTTPメソッドを常に適切に使用してください。[私のハイライト] しかし、その後、フレームワークの多くは、使用トンネリングをするので、HTMLフォーム経由でRESTインターフェースを公開する<form>だけ知っているGETとPOST。私の最新の例はMethodRewriteMiddlewareフラスコ用です(フレームワークの作者が提出):http : //flask.pocoo.org/snippets/38/。 Webフレームワークのハッキングやアドオンなしで「ルール」に準拠する方法はありますか?
11 api  rest  web-framework  http 

2
警告システムのアーキテクチャ
さまざまなプログラムからのアラートメッセージを処理し、それらのアラートを処理して電子メールを介してダウンコンシューマーに送信できるシステムを作成したいと考えています。これはすべて1つの内部ネットワークに含まれます。 基本的なアーキテクチャを次のようにしたいと思います。 私の現在の主な関心事は「メッセージハンドラー」ビットです。これが私の「ソートAPI」になります。このシステムのすべてのコンポーネントが、データベースへのすべての書き込みを処理するAPIにデータを送信するようにします。このアプローチは、セキュリティを簡素化し、より複雑なDBクエリの多くを1つのプログラムに含めることができるため、より簡単だと思います。 懸念事項は、これを言語にとらわれないようにしたいことです。つまり、どのコードでもメッセージをハンドラに送信して、メッセージを解釈できるようにする必要があります。これは、JSONフラットファイルを介して、またはプログラムへのREST呼び出しを介して(下流のアプリケーションに柔軟性を与える)希望します。 私の質問は メッセージハンドラーを気にする必要がありますか?それとも、下流のアプリケーションと他の2つのコンポーネント(管理コンソールとアラートマネージャー)への直接データベースアクセスを許可するだけで簡単になりますか? このようにして、DBテーブルへのINSERTが有効である限り、任意のアラートを挿入できます。 私は貿易でソフトウェアデザイナーではないので、失礼します。ただ、自由な時間にプロジェクトをやってもらいたいのです。

3
symfonyで外部RESTful APIを利用する方法は?
私たちはプロジェクトのマイクロサービスアーキテクチャを構築しており、主にフロントエンドのSymfonyアプリケーションがバックエンドのRESTful APIと対話しています。 問題は、このアプローチがデータベースを持つDoctrineに大きく依存しているSymfonyエンティティ管理を壊していることです。Symfonyは通常、Doctrineでエンティティを処理し、ほとんどの作業を自動化しますが、APIから外部データにアクセスする必要がある場合、これは簡単に再現できません。 たとえば、クライアントエンティティの場合: Doctrineを使用すると、Clientクラスを定義するだけで、クライアントを簡単に作成、更新、取得できます REST APIアプローチを使用すると、APIを介してクライアントにアクセスできますが、クライアントの作成(POST)、更新(PUT)、取得(GET)などを定義するために多くの作業が必要です。 クライアントは、フロントエンドアプリだけでなく、専用のAPIだけでなく、いくつかのアプリケーションでも使用されています。 API呼び出しの複雑さを隠すエンティティのようなメソッドを使用してクラスを作成し、すべてのAPIデータをローカルにインポートして、Doctrineを通じて、または他の方法でそれらにアクセスする必要がありますか?

1
マイクロコントローラー用RTOSのメッセージキュー
現在、マイクロコントローラー用のRTOSを書いています。全体がC ++ 11で書かれています-誰かが興味を持っていて、リポジトリへのリンクが一番下にある場合。 現在私は、スレッド間(または、割り込みハンドラーとスレッド間、または割り込みハンドラーと他の割り込みハンドラー間)でオブジェクトを受け渡すための単純なデータキューであるクラスを作成しています。通常、私は他のプロジェクトにあるいくつかの共通のAPIを追跡しようとすると、まだ私は持っている同時キューのいずれかの例が見つかりませんでしたemplace()機能とサポートタイムアウトを。 私の一般的な「問題」は、次の2つのインターフェースを決定できないことです。 (std::chrono::duration<Rep, Period>はテンプレートタイプです。わかりやすくするためにテンプレートのボイラープレートは省略しています) 最初のバージョン: template<typename T> class FifoQueue { public: ... template<typename... Args> int tryEmplaceFor(std::chrono::duration<Rep, Period>, Args&&... args); int tryPopFor(T&, std::chrono::duration<Rep, Period>); int tryPushFor(const T&, std::chrono::duration<Rep, Period>); int tryPushFor(T&&, std::chrono::duration<Rep, Period>); ... } 2番目のバージョン: template<typename T> class FifoQueue { public: ... template<typename... Args> int tryEmplaceFor(std::chrono::duration<Rep, Period>, …

1
Webサービスの商用ライセンスキーを生成する
バックグラウンド Webベースのソフトウェアライセンスに関するビジネス上の質問があります。多くのWebサイトが、さまざまなAPIのサービスとしてソフトウェアを提供しています。良い例がGoogleのカスタム検索APIです。Webサービスを使用するプロセスは通常、次のようになります。 アカウント。ユーザーがアカウントを作成します。 サーバ。ユーザーは、APIリクエストを行うサーバーのIPアドレスを定義します。 キー。ユーザーは、目的のAPIの公開APIキーを受け取ります。 ガイド。ユーザーには、APIキーを使用してリクエストを行う方法を示すドキュメントが提供されます。 テスト。ユーザーは、統合機能を検証するためにテスト要求を行うことができます。 請求。ユーザーは、アカウントをアクティブにするために支払います。 製造。ユーザーはWebサービスをアプリケーションに統合します。 非アクティブ化。システムは、有効期限が切れた場合、要求の制限を超えた場合などにアカウントを非アクティブにします これらの要件は、ライセンスされているサービスとの統合に追加されます。 問題 これは中小企業にとっては大変な作業です。 ご質問 この問題に対処する既製のオープンソースプロジェクトは何ですか? そのようなプロジェクトがない場合、実行可能な低コストのソリューション(理想的には、各ライセンスのパーセンテージ)を設計するにはどうしますか?つまり、Webベースのサービスのライセンスを求める中小企業(収入がほとんどまたはまったくない)にどのソフトウェアまたは既存の商用サービスを使用しますか? ありがとうございました! 関連リンク Webアプリケーションのライセンスキーソリューション、最善のアプローチは何ですか? API管理システム

2
リプレイ攻撃を回避するにはHTTPSで十分ですか?
モバイルアプリ用のサーバーでいくつかのRESTメソッドを公開しています。 ユーザーが(モバイルアプリから)HTTPメソッドを構築する方法を傍受し、サーバーに再度送信することを避けたいと思います。例: モバイルアプリがリクエストを送信する ユーザーはプロキシを使用して、ネットワークで何が起こっているかを確認できます ユーザーは、モバイルが送信したリクエストを確認して保存します =>ユーザーがそのリクエストを手動で送信できないようにしたい HTTPS経由でサーバーを保護するのに十分ですか?
10 api  https 

1
Google AJAX Search APIに何が起こったか
私はメインのGoogle検索をクエリしたいと思っていますが、stackoveflowを含むすべての参照はGoogle AJAX Search APIを指しています。 奇妙なことに、それはもう存在していないように見えて、それが減価償却されていると言う注記さえないのですか? 古いリンクはメインのGoogleコードサイトを指しています。そのサイトのAPIのリストを見ると、置き換えられたAPIは、同じページにリンクしているがGoogle AJAX Search APIにはリンクしていないWeb Search API(非推奨)です。 さらにGoogle検索も役に立ちません。コンテンツがなく、同じ場所にリダイレクトされる同じGoogleサイト(http://code.google.com/apis/ajaxsearch/)を指す多くのブログ投稿? それが存在していたことを証明するためだけに、マシンの帰り道でそれを見つけましたが、最後のスナップショットには特別な異常なメッセージは表示されませんでした。
10 api  google 

5
REST APIの概念
REST APIの設計について3つの質問があります。誰かに光を当ててもらいたいと思っています。私は何時間も執拗に検索しましたが、私の質問に対する答えがどこにも見つかりませんでした(たぶん、何を検索すればいいのか分かりませんか?)。 質問1 私の最初の質問は、アクション/ RPCに関するものです。しばらくREST APIを開発していて、コレクションやリソースの観点から物事を考えることに慣れています。しかし、私はパラダイムが適用されないように見えるいくつかのケースに遭遇し、これをRESTパラダイムと調整する方法があるかどうか疑問に思っています。 具体的には、リソースを変更するとメールが生成される場合があります。ただし、後で、ユーザーは以前に送信された電子メールを再送信することを具体的に示すことができます。電子メールを再送信しても、リソースは変更されません。状態は変更されません。発生する必要があるのは単にアクションです。アクションは特定のリソースタイプに関連付けられています。 ある種のアクション呼び出しをリソースURI(例:)と混合することは適切/collection/123?action=resendEmailですか?アクションを指定してそれにリソースIDを渡す方がよいでしょうか(例:)/collection/resendEmail?id=123?これはそれについて取り組むのに間違った方法ですか?従来(少なくともHTTPでは)実行されるアクションはリクエストメソッド(GET、POST、PUT、DELETE)ですが、これらは実際にはリソースを使用したカスタムアクションを許可していません。 質問2 URLのクエリ文字列部分を使用して、コレクションをクエリするときに返されるリソースのセットをフィルター処理します(例:)/collection?someField=someval。次に、APIコントローラー内で、そのフィールドと値とどのような比較を行うかを決定します。これは実際には機能しないことがわかりました。APIユーザーが実行する比較のタイプを指定できる方法が必要です。 私がこれまでに作ってみた最高のアイデアは、APIのユーザーはフィールド名(例えばへの付属物として、それを指定することができるようにすることです/collection?someField:gte=somevalどこでリソースを返す必要があることを示すために- someField何でも(> =)以上に等しいsomevalです。これは良いアイデアですか?悪いアイデアですか?そうであれば、なぜですか?指定されたフィールドと値で実行する比較のタイプをユーザーが指定できるようにするより良い方法はありますか? 質問3 s /person/123/dogsを取得するようなURIがよく見られます。最終的に私はそのようなURIを作成することで、実際には特定のIDでフィルターされたコレクションにアクセスしているだけだと考えているので、私は一般にそのようなものを避けました。これはと同等です。REST URIが2つ以上のレベル()になる正当な理由はありますか?persondogsdogsperson/dogs?person=123/collection/resource_id
10 api  rest 

2
親リソースが見つからない場合、POSTに対する適切な応答ステータスコードは何ですか?
私は次のエンドポイントを持っています: a/{id}/b b送信POSTリクエストを含むを作成します。もしa与えられたもの{id}が見つからない場合、私は、404 NOT_FOUNDまたは多分で応答すべき409 CONFLICTですか? それはplainを処理することでありa/{id}、トリックはここでサブリソースが使用されることです。

4
REST APIは、日時を適切なクライアントのタイムゾーンに変換できる必要がありますか?
APIの実装中に、日時とタイムゾーンの問題が発生しました。 データベースでは、すべての日付がUTCに正規化されています。現在、非APIアプリケーションでは、すべての日時は、表示される前にまずユーザーの設定に基づいて変換されます。 APIについても同じ質問が浮上しました。APIは、要求のセマンティクスに基づいて、タイムゾーンに適した日時を返すことができる必要がありますか? 例えばGET /posts?timezone=America/Sao_Paulo? それとも、APIにアクセスしているクライアントで実行する必要がありますか? 更新:数回発生したため:現在、タイムゾーン付きのタイムスタンプが返されます(ただし、常にTZオフセットです+00:00)。形式は人気のある8601です。2015-10-29T23:00:49+00:00
10 rest  api  time 

5
APIはいつ組み込みDSLと見なされますか?
APIと埋め込みドメイン固有言語(DSL)の違いは何ですか? 単なる構文ですか? OpenGLのようなAPIを検討してください。それはグラフィックDSLとどう違うのですか? つまり、APIが十分に複雑な場合、それは組み込みDSLと見なすことができますか?
10 api  dsl 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.