ホームページ バックエンド開発 PHPチュートリアル yii2のrestful API認可検証の詳細説明

yii2のrestful API認可検証の詳細説明

Jan 03, 2018 am 11:42 AM
api restful yii2

この記事では、主に yii2 プロジェクトの実際の RESTful API 認証検証に関する関連情報を紹介します。記事内の紹介は非常に詳細であり、必要な方は以下を参照してください。お役に立てれば幸いです。

はじめに

この記事は主に実際のシナリオでの API のデプロイを目的として書かれています。

今日は、当時 API が遭遇した認可検証の問題についてお話します。

ビジネス分析

まずロジック全体を理解しましょう

  • ユーザーはクライアントでログインフォームに記入します

  • ユーザーがフォームを送信し、クライアントはログインインターフェイスのログインをリクエストします

  • サーバー側の検証ユーザーのアカウントのパスワードを取得し、有効なトークンをクライアントに返します

  • クライアントはユーザーのトークンを取得し、Cookieなどのクライアントに保存します

  • クライアントは、アクセスするためのトークンを保持しますユーザーの個人情報を取得するインターフェースなど、検証が必要なインターフェース

  • サーバーは、検証に合格した場合、クライアントが必要とする情報を返します。再度ログインするには

この記事では、ユーザーとしてログインし、ユーザーの個人情報を取得する例を取り上げ、詳細かつ完全に説明します。
上記がこの記事の焦点です。まだ興奮したり緊張したりしないでください。分析後は、段階的に詳細を説明していきます。

準備

  • APIアプリケーションが必要です

  • クライアントの場合、シミュレーションにpostmanを使用します。Googleブラウザにpostmanがインストールされていない場合は、最初にダウンロードしてください

  • テストするユーザーテーブルには api_token フィールドが必要です。ない場合は、まず自分で追加し、フィールドが十分な長さであることを確認してください。

  • API アプリケーションはルーティングの美化を有効にし、最初に投稿タイプのログインを構成しました。操作と型の取得 Signup-test 操作

  • は、ユーザーコンポーネントのセッションセッションを閉じます

上記の準備の 4 番目と 5 番目の点について、わかりやすいようにコードを掲載します

'components' => [
 'user' => [ 
 'identityClass' => 'common\models\User',
 'enableAutoLogin' => true,
 'enableSession' => false,
 ],
 'urlManager' => [
 'enablePrettyUrl' => true,
 'showScriptName' => false,
 'enableStrictParsing' => true,
 'rules' => [
  [
  'class' => 'yii\rest\UrlRule',
  'controller' => ['v1/user'],
  'extraPatterns' => [
   'POST login' => 'login',
   'GET signup-test' => 'signup-test',
  ]
  ],
 ]
 ],
 // ......
],
ログイン後にコピー

The Signup -test 操作は後で追加されます。ログイン操作を容易にするためにユーザーをテストします。他の種類の操作は後で追加する必要があります。

認証クラスの選択

apmodulesv1controllersUserController で設定したモデル クラスは、commonmodelsUser クラスを指します。重要なポイントを説明するために、次のようにします。ここで個別に取り出さないでください。必要に応じて書き換えて、別の User クラスを apimodels にコピーします。 apimodulesv1controllersUserController中设定的model类指向 commonmodelsUser类,为了说明重点这里我们就不单独拿出来重写了,看各位需要,有必要的话再单独copy一个User类到apimodels下。

校验用户权限我们以 yiifiltersauthQueryParamAuth 为例

use yii\filters\auth\QueryParamAuth;

public function behaviors() 
{
 return ArrayHelper::merge (parent::behaviors(), [ 
  'authenticator' => [ 
  'class' => QueryParamAuth::className() 
  ] 
 ] );
}
ログイン後にコピー

如此一来,那岂不是所有访问user的操作都需要认证了?那不行,客户端第一个访问login操作的时候哪来的token,yiifiltersauthQueryParamAuth对外提供一个属性,用于过滤不需要验证的action。我们将UserController的behaviors方法稍作修改

public function behaviors() 
{
 return ArrayHelper::merge (parent::behaviors(), [ 
  'authenticator' => [ 
  'class' => QueryParamAuth::className(),
  'optional' => [
   'login',
   'signup-test'
  ],
  ] 
 ] );
}
ログイン後にコピー

这样login操作就无需权限验证即可访问了。

添加测试用户

为了避免让客户端登录失败,我们先写一个简单的方法,往user表里面插入两条数据,便于接下来的校验。

UserController增加signupTest操作,注意此方法不属于讲解范围之内,我们仅用于方便测试。

use common\models\User;
/**
 * 添加测试用户
 */
public function actionSignupTest ()
{
 $user = new User();
 $user->generateAuthKey();
 $user->setPassword('123456');
 $user->username = '111';
 $user->email = '111@111.com';
 $user->save(false);

 return [
 'code' => 0
 ];
}
ログイン後にコピー

如上,我们添加了一个username是111,密码是123456的用户

登录操作

假设用户在客户端输入用户名和密码进行登录,服务端login操作其实很简单,大部分的业务逻辑处理都在apimodelsloginForm上,来先看看login的实现

use apimodelsLoginForm;

/**
 * 登录
 */
public function actionLogin ()
{
 $model = new LoginForm;
 $model->setAttributes(Yii::$app->request->post());
 if ($user = $model->login()) {
 if ($user instanceof IdentityInterface) {
  return $user->api_token;
 } else {
  return $user->errors;
 }
 } else {
 return $model->errors;
 }
}
ログイン後にコピー

登录成功后这里给客户端返回了用户的token,再来看看登录的具体逻辑的实现

新建apimodelsLoginForm.PHP

<?php
namespace api\models;

use Yii;
use yii\base\Model;
use common\models\User;

/**
 * Login form
 */
class LoginForm extends Model
{
 public $username;
 public $password;

 private $_user;

 const GET_API_TOKEN = &#39;generate_api_token&#39;;

 public function init ()
 {
 parent::init();
 $this->on(self::GET_API_TOKEN, [$this, &#39;onGenerateApiToken&#39;]);
 }


 /**
 * @inheritdoc
 * 对客户端表单数据进行验证的rule
 */
 public function rules()
 {
 return [
  [[&#39;username&#39;, &#39;password&#39;], &#39;required&#39;],
  [&#39;password&#39;, &#39;validatePassword&#39;],
 ];
 }

 /**
 * 自定义的密码认证方法
 */
 public function validatePassword($attribute, $params)
 {
 if (!$this->hasErrors()) {
  $this->_user = $this->getUser();
  if (!$this->_user || !$this->_user->validatePassword($this->password)) {
  $this->addError($attribute, &#39;用户名或密码错误.&#39;);
  }
 }
 }
 /**
 * @inheritdoc
 */
 public function attributeLabels()
 {
 return [
  &#39;username&#39; => &#39;用户名&#39;,
  &#39;password&#39; => &#39;密码&#39;,
 ];
 }
 /**
 * Logs in a user using the provided username and password.
 *
 * @return boolean whether the user is logged in successfully
 */
 public function login()
 {
 if ($this->validate()) {
  $this->trigger(self::GET_API_TOKEN);
  return $this->_user;
 } else {
  return null;
 }
 }

 /**
 * 根据用户名获取用户的认证信息
 *
 * @return User|null
 */
 protected function getUser()
 {
 if ($this->_user === null) {
  $this->_user = User::findByUsername($this->username);
 }

 return $this->_user;
 }

 /**
 * 登录校验成功后,为用户生成新的token
 * 如果token失效,则重新生成token
 */
 public function onGenerateApiToken ()
 {
 if (!User::apiTokenIsValid($this->_user->api_token)) {
  $this->_user->generateApiToken();
  $this->_user->save(false);
 }
 }
}
ログイン後にコピー

我们回过头来看一下,当我们在UserController的login操作中调用LoginForm的login操作后都发生了什么

1、调用LoginForm的login方法

2、调用validate方法,随后对rules进行校验

3、rules校验中调用validatePassword方法,对用户名和密码进行校验

4、validatePassword方法校验的过程中调用LoginForm的getUser方法,通过commonmodelsUser类的findByUsername获取用户,找不到或者commonmodelsUser

🎜ユーザー権限を確認するために、例として yiifiltersauthQueryParamAuth を取り上げます🎜
/**
 * 生成 api_token
 */
public function generateApiToken()
{
 $this->api_token = Yii::$app->security->generateRandomString() . &#39;_&#39; . time();
}

/**
 * 校验api_token是否有效
 */
public static function apiTokenIsValid($token)
{
 if (empty($token)) {
 return false;
 }

 $timestamp = (int) substr($token, strrpos($token, &#39;_&#39;) + 1);
 $expire = Yii::$app->params[&#39;user.apiTokenExpire&#39;];
 return $timestamp + $expire >= time();
}
ログイン後にコピー
ログイン後にコピー
🎜 この場合、ユーザーにアクセスするすべての操作に認証が必要になるのではないでしょうか?これは機能しません。クライアントが最初にログイン操作にアクセスするとき、トークンはどこから取得されるのでしょうか? yiifiltersauthQueryParamAuth は、検証を必要としないアクションをフィルタリングするための外部属性を提供します。 UserController🎜🎜
<?php
return [
 // ...
 // token 有效期默认1天
 &#39;user.apiTokenExpire&#39; => 1*24*3600,
];
ログイン後にコピー
ログイン後にコピー
🎜の動作メソッドを少し変更して、権限の検証なしでログイン操作にアクセスできるようにします。 🎜🎜🎜🎜🎜テスト ユーザーの追加🎜🎜🎜🎜 クライアントのログインの失敗を回避するために、最初に、その後の検証を容易にするためにユーザー テーブルに 2 つのデータを挿入する簡単なメソッドを作成します。 🎜🎜UserController は、signupTest オペレーションを追加します。このメソッドは、テストを容易にするためにのみ使用されます。 🎜
public function behaviors() 
{
 return ArrayHelper::merge (parent::behaviors(), [ 
   &#39;authenticator&#39; => [ 
    &#39;class&#39; => QueryParamAuth::className(),
    &#39;tokenParam&#39; => &#39;token&#39;,
    &#39;optional&#39; => [
     &#39;login&#39;,
     &#39;signup-test&#39;
    ],
   ] 
 ] );
}
ログイン後にコピー
ログイン後にコピー
🎜上記のように、ユーザー名が 111、パスワードが 123456 のユーザーを追加しました🎜🎜🎜🎜🎜ログイン操作🎜🎜🎜🎜 ユーザーがクライアントでユーザー名とパスワードを入力してログインすると仮定すると、サーバーのログイン操作は次のようになります。実際には非常に単純かつ大規模です。ビジネス ロジック処理の一部は apimodelsloginForm にあります。まずログインの実装を見てみましょう🎜🎜use apimodelsLoginForm;🎜
&#39;extraPatterns&#39; => [
 &#39;POST login&#39; => &#39;login&#39;,
 &#39;GET signup-test&#39; => &#39;signup-test&#39;,
 &#39;GET user-profile&#39; => &#39;user-profile&#39;,
]
ログイン後にコピー
ログイン後にコピー
🎜 ログインが成功すると、ユーザーのトークンが返されます。特定のロジックの実装を見てみましょう🎜🎜🎜 apimodelsLoginForm.PHP を作成します🎜
public static function findIdentityByAccessToken($token, $type = null)
{
 // 如果token无效的话,
 if(!static::apiTokenIsValid($token)) {
  throw new \yii\web\UnauthorizedHttpException("token is invalid.");
 }

 return static::findOne([&#39;api_token&#39; => $token, &#39;status&#39; => self::STATUS_ACTIVE]);
 // throw new NotSupportedException(&#39;"findIdentityByAccessToken" is not implemented.&#39;);
}
ログイン後にコピー
ログイン後にコピー
🎜 UserController のログイン操作で LoginForm のログイン操作を呼び出したときに何が起こったかを見てみましょう🎜🎜🎜 1. LoginForm🎜のloginメソッドを呼び出します🎜 2. validateメソッドを呼び出し、ルールを検証します🎜🎜 3. ルール検証中にvalidatePasswordメソッドを呼び出し、ユーザー名とパスワードを検証します 4. validatePasswordメソッドの検証プロセス中にcommonmodelsUser クラスの findByUsername を通じて LoginForm の getUser メソッドを呼び出します。ユーザーが見つからない場合、または commonmodelsUser の validatePassword がパスワードの検証に失敗した場合は、エラーが返されます🎜

5、触发LoginForm::GENERATE_API_TOKEN事件,调用LoginForm的onGenerateApiToken方法,通过common\models\User的apiTokenIsValid校验token的有效性,如果无效,则调用User的generateApiToken方法重新生成

注意:common\models\User类必须是用户的认证类,如果不知道如何创建完善该类,请围观这里 用户管理之user组件的配置

下面补充本节增加的common\models\User的相关方法

/**
 * 生成 api_token
 */
public function generateApiToken()
{
 $this->api_token = Yii::$app->security->generateRandomString() . &#39;_&#39; . time();
}

/**
 * 校验api_token是否有效
 */
public static function apiTokenIsValid($token)
{
 if (empty($token)) {
 return false;
 }

 $timestamp = (int) substr($token, strrpos($token, &#39;_&#39;) + 1);
 $expire = Yii::$app->params[&#39;user.apiTokenExpire&#39;];
 return $timestamp + $expire >= time();
}
ログイン後にコピー
ログイン後にコピー

继续补充apiTokenIsValid方法中涉及到的token有效期,在api\config\params.php文件内增加即可

<?php
return [
 // ...
 // token 有效期默认1天
 &#39;user.apiTokenExpire&#39; => 1*24*3600,
];
ログイン後にコピー
ログイン後にコピー

到这里呢,客户端登录 服务端返回token给客户端就完成了。

按照文中一开始的分析,客户端应该把获取到的token存到本地,比如cookie中。以后再需要token校验的接口访问中,从本地读取比如从cookie中读取并访问接口即可。

根据token请求用户的认证操作

假设我们已经把获取到的token保存起来了,我们再以访问用户信息的接口为例。

yii\filters\auth\QueryParamAuth类认定的token参数是 access-token,我们可以在行为中修改下

public function behaviors() 
{
 return ArrayHelper::merge (parent::behaviors(), [ 
   &#39;authenticator&#39; => [ 
    &#39;class&#39; => QueryParamAuth::className(),
    &#39;tokenParam&#39; => &#39;token&#39;,
    &#39;optional&#39; => [
     &#39;login&#39;,
     &#39;signup-test&#39;
    ],
   ] 
 ] );
}
ログイン後にコピー
ログイン後にコピー

这里将默认的access-token修改为token。

我们在配置文件的urlManager组件中增加对userProfile操作

&#39;extraPatterns&#39; => [
 &#39;POST login&#39; => &#39;login&#39;,
 &#39;GET signup-test&#39; => &#39;signup-test&#39;,
 &#39;GET user-profile&#39; => &#39;user-profile&#39;,
]
ログイン後にコピー
ログイン後にコピー

我们用postman模拟请求访问下 /v1/users/user-profile?token=apeuT9dAgH072qbfrtihfzL6qDe_l4qz_1479626145发现,抛出了一个异常

\"findIdentityByAccessToken\" is not implemented.<br/>

这是怎么回事呢?

我们找到 yii\filters\auth\QueryParamAuth 的authenticate方法,发现这里调用了 common\models\User类的loginByAccessToken方法,有同学疑惑了,common\models\User类没实现loginByAccessToken方法为啥说findIdentityByAccessToken方法没实现?如果你还记得common\models\User类实现了yii\web\user类的接口的话,你应该会打开yii\web\User类找答案。没错,loginByAccessToken方法在yii\web\User中实现了,该类中调用了common\models\User的findIdentityByAccessToken,但是我们看到,该方法中通过throw抛出了异常,也就是说这个方法要我们自己手动实现!

这好办了,我们就来实现下common\models\User类的findIdentityByAccessToken方法吧

public static function findIdentityByAccessToken($token, $type = null)
{
 // 如果token无效的话,
 if(!static::apiTokenIsValid($token)) {
  throw new \yii\web\UnauthorizedHttpException("token is invalid.");
 }

 return static::findOne([&#39;api_token&#39; => $token, &#39;status&#39; => self::STATUS_ACTIVE]);
 // throw new NotSupportedException(&#39;"findIdentityByAccessToken" is not implemented.&#39;);
}
ログイン後にコピー
ログイン後にコピー

验证完token的有效性,下面就要开始实现主要的业务逻辑部分了。

/**
 * 获取用户信息
 */
public function actionUserProfile ($token)
{
 // 到这一步,token都认为是有效的了
 // 下面只需要实现业务逻辑即可,下面仅仅作为案例,比如你可能需要关联其他表获取用户信息等等
 $user = User::findIdentityByAccessToken($token);
 return [
  &#39;id&#39; => $user->id,
  &#39;username&#39; => $user->username,
  &#39;email&#39; => $user->email,
 ];
}
ログイン後にコピー

服务端返回的数据类型定义

在postman中我们可以以何种数据类型输出的接口的数据,但是,有些人发现,当我们把postman模拟请求的地址copy到浏览器地址栏,返回的又却是xml格式了,而且我们明明在UserProfile操作中返回的是属组,怎么回事呢?

这其实是官方捣的鬼啦,我们一层层源码追下去,发现在yii\rest\Controller类中,有一个 contentNegotiator行为,该行为指定了允许返回的数据格式formats是json和xml,返回的最终的数据格式根据请求头中Accept包含的首先出现在formats中的为准,你可以在yii\filters\ContentNegotiatornegotiateContentType方法中找到答案。

你可以在浏览器的请求头中看到

Accept:

text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8

即application/xml首先出现在formats中,所以返回的数据格式是xml类型,如果客户端获取到的数据格式想按照json进行解析,只需要设置请求头的Accept的值等于application/json即可

有同学可能要说,这样太麻烦了,啥年代了,谁还用xml,我就想服务端输出json格式的数据,怎么做?

办法就是用来解决问题滴,来看看怎么做。api\config\main.php文件中增加对response的配置

&#39;response&#39; => [
 &#39;class&#39; => &#39;yii\web\Response&#39;,
 &#39;on beforeSend&#39; => function ($event) {
  $response = $event->sender;
  $response->format = yii\web\Response::FORMAT_JSON;
 },
],
ログイン後にコピー

如此,不管你客户端传什么,服务端最终输出的都会是json格式的数据了。

自定义错误处理机制

再来看另外一个比较常见的问题:

你看我们上面几个方法哈,返回的结果是各式各样的,这样就给客户端解析增加了困扰,而且一旦有异常抛出,返回的代码还都是一堆一堆的,头疼,怎么办?

说到这个问题之前呢,我们先说一下yii中先关的异常处理类,当然,有很多哈。比如下面常见的一些,其他的自己去挖掘

yii\web\BadRequestHttpException
yii\web\ForbiddenHttpException
yii\web\NotFoundHttpException
yii\web\ServerErrorHttpException
yii\web\UnauthorizedHttpException
yii\web\TooManyRequestsHttpException
ログイン後にコピー

实际开发中各位要善于去利用这些类去捕获异常,抛出异常。说远了哈,我们回到重点,来说如何自定义接口异常响应或者叫自定义统一的数据格式,比如向下面这种配置,统一响应客户端的格式标准。

&#39;response&#39; => [
 &#39;class&#39; => &#39;yii\web\Response&#39;,
 &#39;on beforeSend&#39; => function ($event) {
  $response = $event->sender;
  $response->data = [
   &#39;code&#39; => $response->getStatusCode(),
   &#39;data&#39; => $response->data,
   &#39;message&#39; => $response->statusText
  ];
  $response->format = yii\web\Response::FORMAT_JSON;
 },
],
ログイン後にコピー

说道了那么多,本文就要结束了,刚开始接触的同学可能有一些蒙,不要蒙,慢慢消化,先知道这么个意思,了解下restful api接口在整个过程中是怎么用token授权的就好。这样真正实际用到的时候,你也能举一反三!

相关推荐:

Yii2整合迅搜实现高效中文分词检索

Yii如何过滤不良代码

Yii2实现rbac权限控制

以上がyii2のrestful API認可検証の詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHP プロジェクトで API インターフェイスを呼び出してデータをクロールおよび処理するにはどうすればよいですか? PHP プロジェクトで API インターフェイスを呼び出してデータをクロールおよび処理するにはどうすればよいですか? Sep 05, 2023 am 08:41 AM

PHP プロジェクトで API インターフェイスを呼び出してデータをクロールおよび処理するにはどうすればよいですか? 1. はじめに PHP プロジェクトでは、多くの場合、他の Web サイトからデータをクロールし、これらのデータを処理する必要があります。多くの Web サイトでは API インターフェイスが提供されており、これらのインターフェイスを呼び出すことでデータを取得できます。この記事では、PHP を使用して API インターフェイスを呼び出し、データをクロールおよび処理する方法を紹介します。 2. API インターフェースの URL とパラメーターを取得する 開始する前に、ターゲット API インターフェースの URL と必要なパラメーターを取得する必要があります。

React API 呼び出しガイド: バックエンド API とデータをやり取りおよび転送する方法 React API 呼び出しガイド: バックエンド API とデータをやり取りおよび転送する方法 Sep 26, 2023 am 10:19 AM

ReactAPI 呼び出しガイド: バックエンド API とやり取りしてデータを転送する方法 概要: 最新の Web 開発では、バックエンド API とやり取りしてデータを転送することは一般的なニーズです。 React は、人気のあるフロントエンド フレームワークとして、このプロセスを簡素化するための強力なツールと機能をいくつか提供します。この記事では、React を使用して基本的な GET リクエストや POST リクエストなどのバックエンド API を呼び出す方法を紹介し、具体的なコード例を示します。必要な依存関係をインストールします。まず、Axi がプロジェクトにインストールされていることを確認します。

Python を使用して API データを CSV 形式で保存する Python を使用して API データを CSV 形式で保存する Aug 31, 2023 pm 09:09 PM

データ駆動型のアプリケーションと分析の世界では、API (アプリケーション プログラミング インターフェイス) がさまざまなソースからデータを取得する際に重要な役割を果たします。 API データを操作する場合、多くの場合、アクセスや操作が簡単な形式でデータを保存する必要があります。そのような形式の 1 つは CSV (カンマ区切り値) で、これを使用すると表形式のデータを効率的に編成して保存できます。この記事では、強力なプログラミング言語 Python を使用して API データを CSV 形式で保存するプロセスについて説明します。このガイドで概説されている手順に従うことで、API からデータを取得し、関連情報を抽出し、さらなる分析と処理のためにそれを CSV ファイルに保存する方法を学びます。 Python を使用した API データ処理の世界に飛び込み、CSV 形式の可能性を解き放ってみましょう

Laravel APIのエラー問題に対処する方法 Laravel APIのエラー問題に対処する方法 Mar 06, 2024 pm 05:18 PM

タイトル: Laravel API エラーの問題に対処する方法、具体的なコード例が必要です Laravel を開発していると、API エラーが頻繁に発生します。これらのエラーは、プログラム コードのロジック エラー、データベース クエリの問題、外部 API リクエストの失敗など、さまざまな理由で発生する可能性があります。これらのエラー レポートをどのように処理するかは重要な問題であり、この記事では、特定のコード例を使用して、Laravel API エラー レポートを効果的に処理する方法を示します。 1. Laravelでのエラー処理

Oracle API使用ガイド: データ・インタフェース・テクノロジの探求 Oracle API使用ガイド: データ・インタフェース・テクノロジの探求 Mar 07, 2024 am 11:12 AM

Oracle は世界的に有名なデータベース管理システム プロバイダーであり、その API (アプリケーション プログラミング インターフェイス) は、開発者が Oracle データベースと簡単に対話して統合するのに役立つ強力なツールです。この記事では、Oracle API 使用ガイドを詳しく掘り下げ、開発プロセス中にデータ インターフェイス テクノロジを利用する方法を読者に示し、具体的なコード例を示します。 1.オラクル

MongoDB を使用して単純な CRUD API を開発する方法 MongoDB を使用して単純な CRUD API を開発する方法 Sep 19, 2023 pm 12:32 PM

MongoDB を使用して単純な CRUD API を開発する方法 最新の Web アプリケーション開発において、CRUD (作成、削除、変更、確認) 操作は、最も一般的で重要な機能の 1 つです。この記事では、MongoDB データベースを使用して簡単な CRUD API を開発する方法と、具体的なコード例を紹介します。 MongoDB は、データをドキュメントの形式で保存するオープンソースの NoSQL データベースです。従来のリレーショナル データベースとは異なり、MongoDB には事前定義されたスキーマがありません。

Oracle API統合戦略分析: システム間のシームレスな通信の実現 Oracle API統合戦略分析: システム間のシームレスな通信の実現 Mar 07, 2024 pm 10:09 PM

OracleAPI統合戦略分析: システム間のシームレスな通信を実現するには、特定のコード・サンプルが必要です。今日のデジタル時代では、社内の企業システムは相互に通信してデータを共有する必要があり、OracleAPIは、システム間のシームレスな通信を実現するための重要なツールの1つです。システム。この記事では、OracleAPIの基本概念と原則から始まり、API統合戦略について説明し、最後に読者がOracleAPIをよりよく理解して適用できるように具体的なコード例を示します。 1. 基本的な Oracle API

PHP API インターフェース: スタートガイド PHP API インターフェース: スタートガイド Aug 25, 2023 am 11:45 AM

PHP は、Web アプリケーションや Web サイトの構築に使用される一般的なサーバー側スクリプト言語です。さまざまな種類の API インターフェイスと対話できるため、開発プロセス中に非常に便利です。この記事では、初心者が PHP API インターフェイスの使い方をより早く習得できるように、PHP API インターフェイスの入門ガイドを提供します。 APIとは何ですか? API は「Application Programming Interface」の略で、異なるアプリケーション間でデータや情報を交換できるようにする標準化された方法です。このインタラクションは、W の Web サイトにアクセスすることで実現されます。

See all articles