By using GraphQL, You can get data of logged in customers.
Magento 2 can directly call api to get data by resolver.
Module name : Magemonkeys::Custom
create file schema.graphqls in etc folder in that module
type Query
{
getCustomerData: Response
@resolver(class:"Magemonkeys\Custom\Model\Resolver\Getdataforcustomer")
}
type Response
{
customer_id: String
customer_name: String
}
Create Getdataforcustomer.php in Model/Resolver Folder in that module
namespace MagemonkeysCustomModelResolver;
use MagentoFrameworkGraphQlQueryResolverInterface;
use MagentoFrameworkGraphQlConfigElementField;
use MagentoFrameworkGraphQlSchemaTypeResolveInfo;
use MagentoFrameworkGraphQlExceptionGraphQlNoSuchEntityException;
use MagentoFrameworkGraphQlExceptionGraphQlAuthorizationException;
use MagentoCustomerGraphQlModelCustomerGetCustomer;
class Getdataforcustomer implements ResolverInterface
{
private $getdataforCustomer;
public function __construct(GetCustomer $getdataforCustomer)
{
$this->getCustomer = $getdataforCustomer;
}
public function resolve(Field $field, $context, ResolveInfo $info, array $value = null, array $args = null)
{
try
{
if (false === $context->getExtensionAttributes()->getIsCustomer())
{
throw new GraphQlAuthorizationException(__('The current customer not getting'));
}
$customerdata = $this->getCustomer->execute($context);
$customername = $customerdata->getFirstName()." ".$customerdata->getLastName();
$result = ['customer_id' => $customer->getId(),
'customer_name' => $customername
];
return $result;
}
catch(Exception $exception)
{
throw new GraphQlNoSuchEntityException(__($exception->getMessage()));
}
}
}
After that run command to call api url
That’s it.

